I just upgraded a Debian Lenny box to Wheezy, and found that suidperl is gone. Googling reveals that the upstream maintainers removed it;

I need suidperl to run our mail installation, Open Webmail.

I don't have time for this.

Googling reveals no simple workarounds.

Does anyone here know how to get suidperl on wheezy? Simply? Thanks.

  • <strike>in a fit of self-righteous security nitpicking</strike> because the upstream maintainers drop support. – Zoredache Oct 31 '13 at 0:07
  • Changed to reflect that it wasn't the debian admins. – NXT Oct 31 '13 at 0:08

Bottom line: If you have no time for this then you need to revert to your pre-upgrade system snapshot/backup until you do have time to migrate to a webmail system that does not recommend use of deprecated technology.

As far as I recall (it's been probably 8 years since I've seen an open webmail install), open webmail reads mail spools directly (hence the need for suid) whereas most webmail systems interact with an IMAP server instead (pushing the need for suid to the mailserver, where it belongs).

As far as I can tell, suidperl was removed in perl 5.12 back in 2008(?) because nobody at the upstream level (ie: above Debian) wanted to maintain it - or in other words, suidperl no longer exists anywhere. The only reason you've been lucky to have it so long is because Debian stable uses fairly old versions of most software (with backported security fixes). It's certainly not Debian's fault that it's no longer in existence.

If you really really want to keep using open webmail on wheezy and newer for some reason, your only option is to follow the Open Webmail FAQ section 4:e (ps, ps) at http://openwebmail.org/openwebmail/doc/faq.txt which states:

  ps: If you don't want to recompile perl, you choose to may use
      misc/tools/suidwrap.pl to generate C wrappers for all suid scripts.

      However, this is not recommended at all, as you will not be able
      to use SpeedyCGI with the openwebmail system.

      Here are the steps:
      1. cd cgi-bin/openwebmail
      2. perl misc/tool/wrapsuid/wrapsuid.pl /fullpath/cgi-bin/openwebmail
      3. change #!/usr/bin/suidperl to the path of your perl

      All suid scripts will be renamed to .scriptname.pl and
      the C wrapper will be generated and named as script.pl
      (thanks to Chris Heegard, heegard.AT.NativeI.com)

      The spellcheck may not work on Solaris when using C wrappers.
      (thanks to Isam Ishaq, isam.AT.planet.edu)

Sorry for the bad news, but sometimes there are no good answers :\

| improve this answer | |
  • Thanks, I just finished going through that wrapper process. Of course our OWM is slow now but I can live with that until I find a replacement. I just hate it when people break backwards compatibility without a really good reason. It just feels so high-handed. – NXT Oct 31 '13 at 0:22
  • I can understand your frustration, but the reality is that Open Webmail is a bit of a relic at best these days - last updated in 2006, a full 2 years before perl made the decision to remove suidperl. The Perl team's reasoning was that suidperl was (at best) an imperfect situation in an environment (suid) where perfection is important - and that if "suidperl" was the solution then it's entirely possible that the developer was "asking the wrong question" to begin with. – Phil Oct 31 '13 at 1:28
  • While it was very much still present, suidperl came with strong warnings that you probably shouldn't use it when I started using perl in 1996. – mc0e May 22 '14 at 18:33

I got openwebmail 2.53+ working with speedy AND the c-wrappers:

1 - download the speedy 2.22 sources from http://daemoninc.com/SpeedyCGI/download.html

2 - extract the tar.gz and edit this for compiling:


-#define speedy_new(s,n,t) New(123,s,n,t)

+#define speedy_new(s,n,t) Newx(s,n,t)


3 - perl Makefile.PL; make; make install (don't bother adding the -DIAMSUID)

4 - change the #! line on your openwebmail*.pl to

/usr/bin/speedy -- -T/tmp/speedy

5 - on your openwebmail*.pl directory, run the c wrapper script (change the dir accordingly):

perl misc/tools/wrapsuid/wrapsuid.pl /var/www/owtest/cgi-bin/openwebmail

6 - chmod u+s openwebmail*pl

That worked on my squeeze server (I'm preparing to upgrade to wheezy, so I'll need that working).

(please note that my openwebmail 2.53 is not the stock 2.53, but probably something between that and 3beta, but it should work for both)

| improve this answer | |

Thanks for all the prescriptions, hints, and help.
Both Speedy and suid work here fine on a recent Debian8 (Jessie) 64 bit install! On the fresh Debian8 install on a VirtualPrivateServer I also needed to get pam authentication going:

apt-get install libpam-dev
perl -MCPAN -e shell
install Authen::PAM

What was needed in addition was chmod 2750 for all the files in all the .openwebmail/db directories.
Otherwise the openwebmail/shares/maildb.pl script complains about not being able to open the databases.

Other than that all seems to work fine!

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.