Debian Wheezy and SUID Perl

debian-wheezyperl

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.

Best Answer

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 :\