[13135] in bugtraq
Re: majordomo local exploit
daemon@ATHENA.MIT.EDU (Spidey)
Wed Dec 29 20:52:39 1999
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Message-Id: <Pine.BSF.3.96.991229111930.4269B-100000@anarcat.dyndns.org>
Date: Wed, 29 Dec 1999 11:29:03 -0500
Reply-To: beaupran@iro.umontreal.ca
From: Spidey <spidey@IRO.UMONTREAL.CA>
X-To: Brock Tellier <btellier@USA.NET>
To: BUGTRAQ@SECURITYFOCUS.COM
In-Reply-To: <19991229024744.23364.qmail@nwcst292.netaddress.usa.net>
It would be important to note that on POSIX systems, the wrapper is
compiled to setuid() to the majordomo user, so this won't give a root
shell...
On other systems, you are advised to install majordomo suid 'majordomo'
instead of root.
From the "INSTALL" file:
3) Edit the Makefile, defining where Perl and the C compiler are, the
Majordomo home directory (chosen in step 2), the location of the
manual pages, the user and group that Majordomo will run under, and
the permissions for the various files and directories. If running on
a non-POSIX system, comment out the POSIX SECTION in the Makefile.
Under POSIX, wrapper must be setuid "root", even if the programs will
be running as something other than "root" (i.e., "daemon"), or it
won't work. The symptom of this is that Perl starts complaining about
security violations and "unsafe usages".
Hum... In fact, it is not really written clearly that one non-POSIX
system should not install the wrapper suid root, but that's how I see it
since:
#ifdef POSIX_GID
setgid(POSIX_GID);
#else
setgid(getegid());
#endif
#ifdef POSIX_UID
setuid(POSIX_UID);
#else
setuid(geteuid());
#endif
I think I will warn majordomo about this...
AnarCat
Si l'image donne l'illusion de savoir
C'est que l'adage pretend que pour croire,
L'important ne serait que de voir
Lofofora