<<< Date Index >>>     <<< Thread Index >>>

iDEFENSE Security Advisory 10.10.05: SGI IRIX runpriv Design Error Vulnerability



SGI IRIX runpriv Design Error Vulnerability 

iDEFENSE Security Advisory 10.10.05
www.idefense.com/application/poi/display?id=312&type=vulnerabilities
October 10, 2005

I. BACKGROUND

The runpriv program is a setuid root application that checks to see if a

regular user has been granted privileges to execute a certain predefined

command, and if so it runs the command found in the directory 
/usr/sysadm/privbin with root privileges. It is installed by default 
under multiple versions of IRIX 6. 

II. DESCRIPTION

Local exploitation of a design error vulnerability in the runpriv 
command included in multiple versions of Silicon Graphics Inc.'s IRIX 
could allow for arbitrary code execution as the root user.

The runpriv program is a setuid root application that checks to see if a

regular user has been granted privileges to execute a certain predefined

command, and if so it runs the command found in the directory 
/usr/sysadm/privbin with root privileges. 

The vulnerability specifically exists because runpriv unsafely executes 
commands after it has verified a user's privileges. This allows an 
attacker who has been given privileged access to one binary in 
/usr/sysadm/privbin to effectively execute any command as root. To 
exploit this vulnerability, all that is required is appending a string 
of the form "command to execute" to the end of an otherwise authorized 
and legitimate command. For example, if a user has been authorized to 
run the mountfs utility, they can exploit this vulnerability in the 
following way: 

/usr/sysadm/bin/runpriv mountfs -s test -d / -o \|
  "ksh -c 'echo r00t::0:0:r00t:/tmp:/bin/sh >> /etc/passwd'"
su r00t -c "chown root:sys /tmp/passwd123 ;
mv /tmp/passwd123 /etc/passwd ;
chmod 644 /etc/passwd ; su" 

This will have the effect of adding an administrative user "r00t" to the

system with no password, which allows for trivial privilege escalation.

III. ANALYSIS

Exploitation requires an attacker to have access to an account which has

been granted usage of a binary in the /usr/sysadm/privbin directory. As 
root must explicitly allow such privileges, the impact of this 
vulnerability is lessened significantly. Exploitation does not require 
any knowledge of application internals, making exploitation trivial, 
even for unskilled attackers. 

IV. DETECTION

iDEFENSE has confirmed the existence of this vulnerability in SGI IRIX 
version 6.5.22 (maintenance). It is suspected that previous and later 
versions of both the feature and maintenance revisions of IRIX 6.5 are 
also vulnerable.

V. WORKAROUND

Only grant runpriv privileges to trusted users with secure accounts. 

Alternately, remove the setuid and setgid bits from runpriv: 

chmod ug-s /usr/sysadm/bin/runpriv 

VI. VENDOR RESPONSE

A vendor advisory for this vulnerability is to be posted at:

  http://www.sgi.com/support/security/advisories.html

Vendor patch 7004 for IRIX 6.5.27 and 6.5.28 is available at:

  http://support.sgi.com/

VII. CVE INFORMATION

The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CAN-2005-2925 to this issue. This is a candidate for inclusion in
the CVE list (http://cve.mitre.org), which standardizes names for
security problems.

VIII. DISCLOSURE TIMELINE

09/08/2005  Initial vendor notification
09/09/2005  Initial vendor response
10/05/2005  Coordinated public disclosure

IX. CREDIT

The discoverer of this vulnerability wishes to remain anonymous.

Get paid for vulnerability research
http://www.idefense.com/poi/teams/vcp.jsp

Free tools, research and upcoming events
http://labs.idefense.com

X. LEGAL NOTICES

Copyright (c) 2005 iDEFENSE, Inc.

Permission is granted for the redistribution of this alert
electronically. It may not be edited in any way without the express
written consent of iDEFENSE. If you wish to reprint the whole or any
part of this alert in any other medium other than electronically, please
email customerservice@xxxxxxxxxxxx for permission.

Disclaimer: The information in the advisory is believed to be accurate
at the time of publishing based on currently available information. Use
of the information constitutes acceptance for use in an AS IS condition.
There are no warranties with regard to this information. Neither the
author nor the publisher accepts any liability for any direct, indirect,
or consequential loss or damage arising from use of, or reliance on,
this information.