Date: 01 August 1997
Click here for printable version
Click here for PGP verifiable version
-----BEGIN PGP SIGNED MESSAGE-----
===========================================================================
AA-97.24 AUSCERT Advisory
SGI IRIX xlock Buffer Overrun Vulnerability
29 May 1997
Last Revised: -- 01 August 1997
Added SGI Security Advisory in Appendix A.
Changed Section 3 to include vendor patch information.
A complete revision history is at the end of this file.
- ---------------------------------------------------------------------------
AUSCERT has received information that a vulnerability exists in xlock(1),
distributed under IRIX 6.2. Other versions of IRIX may also be vulnerable.
This vulnerability may allow local users 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
xlock(1) is a program that locks the local X display until a password
is entered.
Due to insufficient bounds checking on arguments which are supplied
by users, it is possible to overwrite the internal stack space of the
xlock program while it is executing. By supplying a carefully designed
argument to the xlock program, intruders may be able to force xlock
to execute arbitrary commands. As xlock is setuid root, this may
allow intruders to run arbitrary commands with root privileges.
Sites can determine if this program is installed by using:
% ls -l /usr/bin/X11/xlock
xlock is installed by default in /usr/bin/X11. 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 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. To maintain the functionality of xlock, AUSCERT recommends
applying the workaround given in Section 3.2.
3.1 Remove setuid and non-root execute permissions
To prevent the exploitation of the vulnerability described in this
advisory, AUSCERT recommends that the setuid permissions be removed
from the xlock program immediately. As xlock will no longer work for
non-root users, it is recommended that the execute permissions for
them also be removed.
# ls -l /usr/bin/X11/xlock
-rwsr-xr-x 1 root sys 95188 Nov 28 1996 /usr/bin/X11/xlock
# chmod 500 /usr/bin/X11/xlock
# ls -l /usr/bin/X11/xlock
-r-x------ 1 root sys 95188 Nov 28 1996 /usr/bin/X11/xlock
3.2 Install 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. Please contact AUSCERT directly if pre-compiled wrapper
binaries are required.
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 xlock 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 xlock command. The wrapper program can also be
configured to syslog any failed attempts to execute xlock 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 xlock, 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 patches which address the vulnerability
described in this advisory. AUSCERT recommends that sites apply theses
patches as soon as possible.
Operating System Vulnerable? Patch #
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ ~~~~~~~
IRIX 3.x no
IRIX 4.x no
IRIX 5.0.x yes not avail
IRIX 5.1.x yes not avail
IRIX 5.2 yes not avail
IRIX 5.3 yes 2090
IRIX 6.0.x yes not avail
IRIX 6.1 yes not avail
IRIX 6.2 yes 2090
IRIX 6.3 yes 2090
IRIX 6.4 yes 2091
These patches can be retrieved from:
http://www.sgi.com/Support/Secur/security.html
Silicon Graphics has also released a security bulletin containing
information on the above patches. The original release of this bulletin
has been appended in Appendix A.
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 xlock program is not
needed by many sites. If sites had previously disabled this program,
they would not have been susceptible to this latest vulnerability.
.........................................................................
Appendix A
- ----------------------- BEGIN SGI SECURITY ADVISORY ----------------------
- - -----BEGIN PGP SIGNED MESSAGE-----
______________________________________________________________________________
Silicon Graphics Inc. Security Advisory
Title: xlock Vulnerability
Number: 19970502-02-PX
Date: July 7, 1997
______________________________________________________________________________
Silicon Graphics provides this information freely to the SGI user community
for its consideration, interpretation, implementation and use. Silicon
Graphics recommends that this information be acted upon as soon as possible.
Silicon Graphics provides the information in this Security Advisory on
an "AS-IS" basis only, and disclaims all warranties with respect thereto,
express, implied or otherwise, including, without limitation, any warranty
of merchantability or fitness for a particular purpose. In no event shall
Silicon Graphics be liable for any loss of profits, loss of business, loss
of data or for any indirect, special, exemplary, incidental or consequential
damages of any kind arising from your use of, failure to use or improper
use of any of the instructions or information in this Security Advisory.
______________________________________________________________________________
- - - -----------------------
- - - --- Issue Specifics ---
- - - -----------------------
The xlock(1) program is used to lock the local X display of a system
until a correct password is entered at the keyboard. The program is
setuid root and as part of the process of locking an X display accepts
user arguments to establish specific xlock operation.
It has been determined that an appropriately crafted set of arguments
could be input to the xlock program allowing execution of arbitrary
user commands with root privileges. This resulting buffer overflow
condition is considered a security vulnerability in the xlock program.
Silicon Graphics Inc. has investigated the issue and recommends the
following steps for neutralizing the exposure. It is HIGHLY RECOMMENDED
that these measures be implemented on ALL SGI systems. This issue will
be corrected in future releases of IRIX.
- - - --------------
- - - --- Impact ---
- - - --------------
The xlock program (/usr/bin/X11/xlock) is installed on all IRIX systems
by default.
A local account is required in order to exploit this vulnerability both
locally and remotely.
This vulnerability can be utilized to execute commands with root
privileges.
This vulnerability has been publically discussed and reported in
CERT advisory CA-97.13 and AUSCERT advisory AA-97.24.
- - - --------------------------
- - - --- Temporary Solution ---
- - - --------------------------
Although patches are available for this issue, it is realized that
there may be situations where installing the patches immediately may
not be possible.
The steps below can be used to remove the vulnerability by removing
the permissions of the xlock program.
1) Become the root user on the system.
% /bin/su -
Password:
#
2) Change the permissions on the xlock program.
# /bin/chmod 500 /usr/bin/X11/xlock
************
*** NOTE ***
************
Removing the setuid root permissions from the xlock
program will prevent non-root users from using the xlock
to lock their terminal.
3) Return to previous level.
# exit
$
- - - ----------------
- - - --- Solution ---
- - - ----------------
OS Version Vulnerable? Patch # Other Actions
---------- ----------- ------- -------------
IRIX 3.x no
IRIX 4.x no
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 2090
IRIX 6.0.x yes not avail Note 1
IRIX 6.1 yes not avail Note 1
IRIX 6.2 yes 2090
IRIX 6.3 yes 2090
IRIX 6.4 yes 2091
NOTES
1) upgrade operating system or see "Temporary Solution" section.
Patches are available via anonymous FTP and your service/support provider.
The SGI anonymous FTP site is sgigate.sgi.com (204.94.209.1) or its
mirror, ftp.sgi.com. Security information and patches can be found
in the ~ftp/security and ~ftp/patches directories, respectfully.
##### Patch File Checksums ####
The actual patch will be a tar file containing the following files:
Filename: README.patch.2090
Algorithm #1 (sum -r): 50124 8 README.patch.2090
Algorithm #2 (sum): 49453 8 README.patch.2090
MD5 checksum: 4D51EA09250113215760C045BE8F5E14
Filename: patchSG0002090
Algorithm #1 (sum -r): 49562 1 patchSG0002090
Algorithm #2 (sum): 25201 1 patchSG0002090
MD5 checksum: 99F72D8E24773A63306A0118F56411E7
Filename: patchSG0002090.idb
Algorithm #1 (sum -r): 47573 1 patchSG0002090.idb
Algorithm #2 (sum): 35831 1 patchSG0002090.idb
MD5 checksum: 9E16916C33EA81D2C090A9162FB7B099
Filename: patchSG0002090.x_eoe_sw
Algorithm #1 (sum -r): 40887 114 patchSG0002090.x_eoe_sw
Algorithm #2 (sum): 62640 114 patchSG0002090.x_eoe_sw
MD5 checksum: 7088ECF05104E049DCC1D5150EE41F8C
Filename: README.patch.2091
Algorithm #1 (sum -r): 08547 8 README.patch.2091
Algorithm #2 (sum): 35395 8 README.patch.2091
MD5 checksum: 54836F64E12DDBAE09E1F165B42A7B01
Filename: patchSG0002091
Algorithm #1 (sum -r): 50655 1 patchSG0002091
Algorithm #2 (sum): 27369 1 patchSG0002091
MD5 checksum: 857AE0806FE273DB75F99264873828FD
Filename: patchSG0002091.idb
Algorithm #1 (sum -r): 07183 1 patchSG0002091.idb
Algorithm #2 (sum): 35505 1 patchSG0002091.idb
MD5 checksum: 134D7A6DC774425B6CC73A84A9468833
Filename: patchSG0002091.x_eoe_sw
Algorithm #1 (sum -r): 23378 102 patchSG0002091.x_eoe_sw
Algorithm #2 (sum): 26001 102 patchSG0002091.x_eoe_sw
MD5 checksum: 1FF45DAC2F7FDCCAB8A982ED77554DDA
- - - ------------------------
- - - --- Acknowledgments ---
- - - ------------------------
Silicon Graphics Inc. wishes to thank the CERT Coordination Center
and AUSCERT for their assistance in this issue.
- - - -----------------------------------------------------------
- - - --- Silicon Graphics Inc. Security Information/Contacts ---
- - - -----------------------------------------------------------
If there are questions about this document, email can be sent to
cse-security-alert@sgi.com.
------oOo------
Silicon Graphics provides security information and patches for
use by the entire SGI community. This information is freely
available to any person needing the information and is available
via anonymous FTP and the Web.
The primary SGI anonymous FTP site for security information and patches
is sgigate.sgi.com (204.94.209.1). Security information and patches
are located under the directories ~ftp/security and ~ftp/patches,
respectively. The Silicon Graphics Security Headquarters Web page is
accessible at the URL http://www.sgi.com/Support/Secur/security.html.
For issues with the patches on the FTP sites, email can be sent to
cse-security-alert@sgi.com.
For assistance obtaining or working with security patches, please
contact your SGI support provider.
------oOo------
Silicon Graphics provides a free security mailing list service
called wiretap and encourages interested parties to self-subscribe
to receive (via email) all SGI Security Advisories when they are
released. Subscribing to the mailing list can be done via the Web
(http://www.sgi.com/Support/Secur/wiretap.html) or by sending email
to SGI as outlined below.
% mail wiretap-request@sgi.com
subscribe wiretap <YourEmailAddress>
end
^d
In the example above, <YourEmailAddress> is the email address that you
wish the mailing list information sent to. The word end must be on a
separate line to indicate the end of the body of the message. The
control-d (^d) is used to indicate to the mail program that you are
finished composing the mail message.
------oOo------
Silicon Graphics provides a comprehensive customer World Wide Web site.
This site is located at http://www.sgi.com/Support/Secur/security.html.
------oOo------
For reporting *NEW* SGI security issues, email can be sent to
security-alert@sgi.com or contact your SGI support provider. A
support contract is not required for submitting a security report.
______________________________________________________________________________
This information is provided freely to all interested parties and may
be redistributed provided that it is not altered in any way, Silicon
Graphics is appropriately credited and the document retains and
includes its valid PGP signature.
- - -----BEGIN PGP SIGNATURE-----
Version: 2.6.2
iQCVAwUBM8FvdLQ4cFApAP75AQFUeQQAkSGeKlM8xVnrnkxffodmCYKm5DP5SGCU
mfRiIvi9i2tuuzOGNNDGo7d5DE2xhL+40yfoNUTNBvCpj5Oz5KHUyWU93kfQGB3c
f3JgsEcc8s888cOqTRenqhqP6Ey0+tjJItsRC5oo+hharJTAcmTBh9BRBHm5I5UL
ngmPNnHE3pE=
=rLt0
- - -----END PGP SIGNATURE-----
- ----------------------- END SGI SECURITY ADVISORY --------------------------
...........................................................................
- ---------------------------------------------------------------------------
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
01 Aug, 1997 Silicon Graphics has released a security advisory
addressing the vulnerability described in this advisory.
This has been appended in Appendix A. Section 3 has been
modified to include this information.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3i
Charset: noconv
Comment: ftp://ftp.auscert.org.au/pub/auscert/AUSCERT_PGP.key
iQCVAwUBM+H+TSh9+71yA2DNAQHaIwP+PH89h6VmjaXpc7Utxj5KTzt4EE1bSHnw
EwgzabNFw53xJutlFD5uXUvxglrNa9h0Ftn7ZWybaOZQ+dNg8hoxCjcHZ/7fS5lW
t0J+irzWn+R7WAQUn/aB4JRXar4oNhKzN6Rqq/ogAg+yhVtOxb/GqPfZnx0vjsVn
lKQ8XgfvAF4=
=djix
-----END PGP SIGNATURE-----
|