[vox-tech] Running a suid root perl script

Mike Simons vox-tech@lists.lugod.org
Mon, 05 May 2003 15:09:55 -0400


--QKpLca3blcvhMJ0W
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, May 05, 2003 at 11:37:20AM -0700, Henry House wrote:
> You're right. The file is owned by root. Now the real reason that I want =
an
> suid script:
>=20
> #!/usr/bin/suidperl -T
> $ENV{'PATH'} =3D '/bin:/usr/bin';
> delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
> $ENV{'HOME'} =3D '/root';
> open(BOGOFILTER, "|ssh root\@mail.internal bogofilter -Nsv");
> while ($line =3D <STDIN>) { print BOGOFILTER $line }
> close(BOGOFILTER);
> exit
>=20
> This script, residing at /usr/local/bin/spamlearn, is intended to allow
> al users to redirect spam that gets through back to the bogofilter* datab=
ase
> on the mail server, a seperate machine that normally does not host
> interactive logins. SSH is configured to accept key-based auth only and t=
he
> key is in root's home. But it does not work: SSH asks for a password and
> warns about an unknown server fingerprint, indicating that it is using
> the user's ~/.ssh not /root/.ssh. Any ideas?

Henry,

  Is sounds like some environment variable like 'USER' needs to be set so=
=20
that ssh can find the right local key to use for authentication.  Have your=
=20
script print out all the environment variables and values...
  print map { "$_ -> $ENV{$_}\n" } keys %ENV;
=2E.. look for any that look wrong and fix them.


  Also, I recommend you remove all environment variables except for the
ones you trust, since this is running as root and there have been a
number of ways to take over based on environment holes...

something Draconian like this should be safe:  =3D)
=3D=3D=3D
  delete %ENV;
  $ENV('HOME'} =3D "/root";
  $ENV('USER'} =3D "root";
  $ENV('SHELL'} =3D "/bin/bash";
  $ENV('PATH'} =3D "/bin:/usr/bin";
=3D=3D=3D

--=20
GPG key: http://simons-clan.com/~msimons/gpg/msimons.asc
Fingerprint: 524D A726 77CB 62C9 4D56  8109 E10C 249F B7FA ACBE

--QKpLca3blcvhMJ0W
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE+trcD4Qwkn7f6rL4RAsd/AJ9ayNC5XhsPSgr5tg3w8oLUjTuPhgCeK5N/
252ehXxeNhjNPxILjqJqt6w=
=n0mL
-----END PGP SIGNATURE-----

--QKpLca3blcvhMJ0W--