3

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.

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

3 Answers 3

8

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

3
  • 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.
    – rf_circ
    Oct 31, 2013 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, 2013 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, 2014 at 18:33
0

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:

/src/speedy_backend_main.h:

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

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

(http://sourceforge.net/p/speedycgi/bugs/91/#7fc6)

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)

0

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
exit

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!

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .