AA-97.20.IRIX.pset.buffer.overflow.vul
4402aee3499f886df4a7edb94ddc7424657a517a033b331bb2d1f6468ed663a9
-----BEGIN PGP SIGNED MESSAGE-----
===========================================================================
AA-97.20 AUSCERT Advisory
SGI IRIX pset Buffer Overrun Vulnerability
27 May 1997
Last Revised: -- 30 March 1998
Changed Section 3 to include vendor patch and bulletin
information.
A complete revision history is at the end of this file.
- ---------------------------------------------------------------------------
AUSCERT has received information that a vulnerability exists in pset(1M),
distributed under IRIX 5.X and 6.X prior to 6.4.
This vulnerability may allow local users to gain the privileges of group
sys. These privileges may then be leveraged to gain root privileges.
Exploit information involving this vulnerability has been made publicly
available.
Vendor patches have been released addressing this vulnerability.
AUSCERT recommends that sites take the steps outlined in section 3 as
soon as possible.
This advisory will be updated as more information becomes available.
- ---------------------------------------------------------------------------
1. Description
pset(1M) is a program used to display and modify information concerning
the use of processor sets in the current system. The pset command is
used on multi-processor systems to restrict the execution of different
classes of jobs.
Due to insufficient bounds checking on arguments which are supplied
by users, it is possible to overwrite the internal stack space of the
pset program while it is executing. By supplying a carefully designed
argument to the pset program, intruders may be able to force pset to
execute arbitrary commands. As pset is setgid sys, this may allow
intruders to run arbitrary commands with the privileges of group sys.
This may then be leveraged to gain root privileges.
Sites can determine if this program is installed by using:
% ls -l /sbin/pset
pset is installed by default in /sbin. Sites are encouraged to check
for the presence of this program regardless of the version of IRIX
installed.
Exploit information involving this vulnerability has been made publicly
available.
2. Impact
This vulnerability may allow local users to gain the privileges of group
sys. These privileges may then be leveraged to gain root privileges.
3. Workarounds/Solution
Official vendor patches have been released by Silicon Graphics which
address this vulnerability (Section 3.3).
If the patches recommended by Silicon Graphics cannot be applied,
AUSCERT recommends that sites prevent the exploitation of this
vulnerability by immediately applying the workaround given in Section
3.1. If the df functionality is required by non-root users and patches
can not be installed, AUSCERT recommends applying the workaround given
in Section 3.2.
3.1 Remove setgid and non-root execute permissions
To prevent the exploitation of the vulnerability described in this
advisory, AUSCERT recommends that the setgid permissions be removed
from the pset program immediately. As pset will no longer work for
non-root users, it is recommended that the execute permissions for
them also be removed.
# ls -l /sbin/pset
-rwsr-sr-x 1 root sys 31704 Nov 22 1994 /sbin/pset
# chmod 500 /sbin/pset
# ls -l /sbin/pset
-r-x------ 1 root sys 31704 Nov 22 1994 /sbin/pset
3.2 Install pset wrapper
AUSCERT has developed a wrapper to help prevent programs from being
exploited using the vulnerability described in this advisory. Sites
which have a C compiler can obtain the source, compile and install
the wrapper.
The source for the wrapper, including installation instructions, can
be found at:
ftp://ftp.auscert.org.au/pub/auscert/tools/overflow_wrapper/
overflow_wrapper.c
This wrapper replaces the pset program and checks the length of the
command line arguments which are passed to it. If an argument exceeds
a certain predefined value (MAXARGLEN), the wrapper exits without
executing the pset command. The wrapper program can also be configured
to syslog any failed attempts to execute pset with arguments exceeding
MAXARGLEN. For further instructions on using this wrapper, please
read the comments at the top of overflow_wrapper.c.
When compiling overflow_wrapper.c for use with pset, AUSCERT recommends
defining MAXARGLEN to be 32.
The MD5 checksum for the current version of overflow_wrapper.c can be
retrieved from:
ftp://ftp.auscert.org.au/pub/auscert/tools/overflow_wrapper/CHECKSUM
The CHECKSUM file has been digitally signed using the AUSCERT PGP key.
3.3 Install vendor patches
Silicon Graphics has released a security bulletin containing
information on this vulnerability including patch details. The original
release of this bulletin can be retrieved from:
ftp://sgigate.sgi.com/security/19970506-02-PX
Information on patches which address the vulnerability described in
this advisory has been extracted from the SGI bulletin and is listed
below.
OS Version Vulnerable? Patch # Other Actions
---------- ----------- ------- -------------
IRIX 3.x no not avail Note 1
IRIX 4.x no not avail Note 1
IRIX 5.0.x yes not avail Note 1
IRIX 5.1.x yes not avail Note 1
IRIX 5.2 yes not avail Note 1
IRIX 5.3 yes 2176
IRIX 6.0.x yes not avail Note 1
IRIX 6.1 yes not avail Note 1
IRIX 6.2 yes 2459
IRIX 6.3 yes 2792
IRIX 6.4 no
NOTES
1) upgrade operating system or see "Temporary Solution" section.
"Temporary Solution" refers to the SGI bulletin but is equivalent to
the suggestions given in our AUSCERT advisory in section 3.1.
These patches can be retrieved from:
ftp://sgigate.sgi.com/patches/
4. Additional measures
Most Unix systems ship with numerous programs which have setuid or
setgid privileges. Often the functionality supplied by these privileged
programs is not required by many sites. The large number of privileged
programs that are shipped by default are to cater for all possible
uses of the system.
AUSCERT encourages sites to examine all the setuid/setgid programs
and determine the necessity of each program. If a program does not
absolutely require the setuid/setgid privileges to operate (for example,
it is only run by the root user), the setuid/setgid privileges should
be removed. Furthermore, if a program is not required at your site,
then all execute permissions should be removed.
A sample command to find all setuid/setgid programs is (run as root):
# find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -l {} \;
It is AUSCERT's experience that many vulnerabilities are being discovered
in setuid/setgid programs which are not necessary for the correct
operation of most systems. Sites can increase their security by
removing unnecessary setuid/setgid programs.
For example, the functionality provided by the pset program is not
needed by many sites. If sites had previously disabled this program,
they would not have been susceptible to this latest vulnerability.
- ---------------------------------------------------------------------------
The AUSCERT team have made every effort to ensure that the information
contained in this document is accurate. However, the decision to use the
information described is the responsibility of each user or organisation.
The appropriateness of this document for an organisation or individual
system should be considered before application in conjunction with local
policies and procedures. AUSCERT takes no responsibility for the
consequences of applying the contents of this document.
If you believe that your system has been compromised, contact AUSCERT or
your representative in FIRST (Forum of Incident Response and Security
Teams).
AUSCERT is located at The University of Queensland within the Prentice
Centre. AUSCERT is a full member of the Forum of Incident Response and
Security Teams (FIRST).
AUSCERT maintains an anonymous FTP service which is found on:
ftp://ftp.auscert.org.au/pub/. This archive contains past SERT and AUSCERT
Advisories, and other computer security information.
AUSCERT also maintains a World Wide Web service which is found on:
http://www.auscert.org.au/.
Internet Email: auscert@auscert.org.au
Facsimile: (07) 3365 4477
Telephone: (07) 3365 4417 (International: +61 7 3365 4417)
AUSCERT personnel answer during Queensland business hours
which are GMT+10:00 (AEST).
On call after hours for emergencies.
Postal:
Australian Computer Emergency Response Team
Prentice Centre
Brisbane
Qld. 4072.
AUSTRALIA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Revision History
30 March 1998 Silicon Graphics has released a security bulletin
addressing the vulnerability described in this advisory.
Section 3 has been modified to include vendor patch
information.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: noconv
Comment: ftp://ftp.auscert.org.au/pub/auscert/AUSCERT_PGP.key
iQCVAwUBNR/LRih9+71yA2DNAQH1jwP/RKOoaLhCJeGxWDEriUotn8kM7oYjshtB
ADsCM9S7oAyxJ24qXszkkquJMiVmu2iOt+BUMUBgQkhXaG94hLmizgyrCbeLg/0e
TbVkARjaZX0GUga/opv+CuBhxhIPrJsIKU0o7zIZPUoRpwqoObJFJHGcLNqNsUtv
k9cJ5CeCLDs=
=vlFd
-----END PGP SIGNATURE-----