OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Rocks Clusters <=4.1 local root

From: Xavier (compromisegmail.com)
Date: Fri Jul 14 2006 - 14:33:28 CDT


(direct link: http://xavier.tigerteam.se/advisories/TSEAD-200606-6.txt)

              tigerteam.se security advisory - TSEAD-200606-6
                              www.tigerteam.se

     Advisory: Rocks Clusters <=4.1 local root vulnerabilities
         Date: Wed Jul 5 15:52:59 EDT 2006
  Application: mount-loop, umount-loop
Vulnerability: Lack of filtering on arguments allow for privilege escalation
    Reference: TSEAD-200606-6
       Author: Xavier de Leon - xaviertigerteam.se

SYNOPSIS

    "Rocks is a complete "cluster on a CD" solution for x86 and IA64 Red Hat
     Linux COTS clusters. Building a Rocks cluster does not require any
     experience in clustering, yet a cluster architect will find a flexible
     and programmatic way to redesign the entire software stack just below the
     surface (appropriately hidden from the majority of users). Although Rocks
     includes the tools expected from any clustering software stack (PBS,
     Maui, GM support, Ganglia, etc), it is unique in its simplicity of
     installation."[7]

     Rocks Clusters <=4.1 is vulnerable to local root privilege escalation
     due to improper validating of arguments in two of its suid and world
     executable binaries, "mount-loop" and "umount-loop". Rocks Clusters has
     an unofficial cluster count[6] of 883 with 41,535 CPUs and 198456.66
     FLOPS.

VENDER RESPONSE

    May 31, 2006: Initial contact
     Jun 1, 2006: Response, Disclosure, Verification of bug,
                  redirected to another project Contact. Fixed
                  in CVS[1]
     Jun 9, 2006: Attempted contact after 8 days of silence
    Jun 28, 2006: Project releases Rocks v4.2 Beta with fix
    Jun 30, 2006: Attempted contact after 29 days of silence
     Jul 5, 2006: No contact

VULNERABILITIES

    1) mount-loop:
       mount-loop is a binary that is distributed with suid root and is world
       executable.

       The problem is the program does not properly filter args
       to be used in a system() execution. An attacker could gain root from
       command line. A link[2] to its source can be found below.

       PoC[4] provided below.

    2) umount-loop:
       umount-loop is a binary that is distributed with suid root and is world
       executable.

       The problem is the program does not properly filter args
       to be used in a system() execution. An attacker could gain root from
       command line. A link[3] to its source can be found below.

       PoC[5] provided below.

DISCOVERY

    Xavier de Leon <xaviertigerteam.se>
    check out http://xavsec.blogspot.com for future sec releases on my part

ABOUT TIGERTEAM.SE

    tigerteam.se offers spearhead competence within the areas of vulnerability
    assessment, penetration testing, security implementation, and advanced
    ethical hacking training. tigerteam.se consists of Michel Blomgren -
    company owner (M. Blomgren IT Security) and Xavier de Leon - freelancing IT
    security consultant. Together we have worked for organizations in over 15
    countries.

REFERENCES

    [1]: http://cvs.rocksclusters.org/viewcvs/viewcvs.cgi/rocks/src/roll/base/nodes/rocks-dist.xml?rev=1.10&content-type=text/vnd.viewcvs-markup
    [2]: http://cvs.rocksclusters.org/viewcvs/viewcvs.cgi/rocks/src/roll/base/src/dist/mount-loop.c?rev=1.4&content-type=text/vnd.viewcvs-markup
    [3]: http://cvs.rocksclusters.org/viewcvs/viewcvs.cgi/rocks/src/roll/base/src/dist/umount-loop.c?rev=1.4&content-type=text/vnd.viewcvs-markup
    [4]: http://xavier.tigerteam.se/exploits/rocksmountdirty.sh
    [5]: http://xavier.tigerteam.se/exploits/rocksumountdirty.py
    [6]: http://www.rocksclusters.org/rocks-register/
    [7]: http://distrowatch.com/table.php?distribution=rockscluster