[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PISA-05-JAN-00-000
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
.------------------------------------------------.
|**** Project Independence Security Advisory ****|
`-----------* ID: PISA-21-NOV-99-004 *-----------'
Issued by: David Webster <cognition@bigfoot.com>
Issue Date: 05-JAN-00
Overview: Security bug in usermode and pam
Affected: Independence Release 6.0-0.8 (Redhat 6.0)
References: RedHat Security Advisory: RHSA-2000:001-01
L0pht Security Advisory PamSlam
[ http://www.lopht.com/advisories/pam_advisory ]
-=-=-==-=-=-
Detailed Problem Description:
The combination of the fact that both userhelper and PAM follow ..
paths allows us to craft up a file that causes userhelper (by way
of PAM) to dlopen any shared object we want as root. The exploit
is simple, and utilizes the '-w' option of userhelper, which lets
us specify a program to run with the privileges designated by PAM.
This tries to only execute programs that have entries in
/etc/security/console.apps, but since we get to specify the name,
something like ../../../tmp/myprog gets us a file open path that
looks like /etc/security/console.apps/../../../tmp/myprog. "strcat"
is not a good way to keep a filename below a directory!
After this hurdle, PAM is called to start up the binary, and it does
the same thing, looking for the filename in /etc/pam.d. If we've
placed a rogue pam.d configuration file in /tmp/myprog, then it can
be pointed to /etc/pam.d/../../../tmp/myprog. In the pam.d config.
file, we get to pick a few shared libraries to dlopen, so at this
point, we get root.
The following exploit demonstrates this vulnerability by creating a
'rootshell library' that creates a shell when dlopened, creating a
pam.d-style configuration file, and then running userhelper with
the appropriately dotted path.
Solution:
Update the affected RPM packages by downloading and
installing the RPMs listed below. For each RPM, run:
root# rpm -Uvh <filename>
where <filename> is the name of the RPM.
[Note: You need only install EITHER the compiled RPM,
(*.i386.rpm) OR the source RPM, (*.src.rpm), NOT both.]
RPMs:
http://independence.seul.org/security/2000/rpms/pam-0.68-10.i386.rpm
ftp://updates.redhat.com/6.1/i386/pam-0.68-10.i386.rpm
http://independence.seul.org/security/2000/rpms/usermode-1.17-1.i386.rpm
ftp://updates.redhat.com/6.1/i386/usermode-1.17-1.i386.rpm
http://independence.seul.org/security/2000/rpms/SysVinit-2.77.i386.rpm
ftp://updates.redhat.com/6.0/i386/SysVinit-2.77-2.i386.rpm
Source RPMs:
http://independence.seul.org/security/2000/rpms/pam-0.68-10.src.rpm
ftp://updates.redhat.com/6.1/SRPMS/pam-0.68-10.src.rpm
http://independence.seul.org/security/2000/rpms/usermode-1.17-1.src.rpm
ftp://updates.redhat.com/6.1/SRPMS/usermode-1.17-1.src.rpm
http://independence.seul.org/security/2000/rpms/SysVinit-2.77.src.rpm
ftp://updates.redhat.com/6.0/SRPMS/SysVinit-2.77-2.src.rpm
These packages are GPG signed by Red Hat, Inc. for security.
Their key is available at: http://www.redhat.com/corp/contact.html
You can verify each package with the following command:
rpm --checksig <filename>
If you only wish to verify that each package has not been corrupted or
tampered with, examine only the md5sum with the following command:
rpm --checksig --nogpg <filename>
This security advisory, and all future ones should be signed by me,
David Webster (aka cognition), with key ID: 45 FA C2 83
Which is avaliable from: [http://www.cognite.net/pgp.html],
and most good pgp key servers.
An archive of these messages can be currently be found on:
http://independence.seul.org/security/
A process of automatic retrival is being worked on.
[Note: Thanks go to dildog@l0pht.com, from l0pht, and to RedHat for finding,
and fixing these holes.]
.---------------------------------------------------.
| And problems regarding this, or future advisories |
| should be emailed to me: <cognition@bigfoot.com> |
`---------------------------------------------------'
-----BEGIN PGP SIGNATURE-----
Comment: David Webster (aka cogNiTioN) <http://www.cognite.net/>
iD8DBQE4cxznDdLNO0X6woMRAifGAJ9+/VlafWxcBdgxeq/2FC6RPKcKMACg0NgD
VYVP6dHL7kJ7ug9cHV5gENc=
=Jf20
-----END PGP SIGNATURE-----