SEC Consult Security Advisory < 20091217-0 >
==========================================================================
             title: Authentication bypass and file manipulation in 
                    Sitecore Staging Module
          products: Sitecore Staging Module
vulnerable version: Sitecore Staging Module <= 5.4.0 rev.080625
     fixed version: Staging 5.4.0 rev.091111 
            impact: critical
          homepage:
               http://www.sitecore.net/en/Products/Sitecore-CMS.aspx
             found: 2009-09-07
                by: L. Weichselbaum / SEC Consult / www.sec-consult.com
==========================================================================

Vendor description:
-------------------
Sitecore CMS makes it effortless to create content and experience rich
websites that help you achieve your business goals such as increasing 
sales and search engine visibility, while being straight-forward to  
integrate and administer. Sitecore lets you deliver sites that are
highly scalable, robust and secure. Whether you're focused on
marketing, development and design, or providing site content, Sitecore
delivers for you.

The main purpose of the Sitecore Staging module is to update two or
more Sitecore installations across a firewall. 

source: http://www.sitecore.net/en/Products.aspx
        http://sdn.sitecore.net/upload/sdn5/sitecore6modules/staging/
        staging-module-installation-and-configuration-guide.pdf


Vulnerability overview/description:
-----------------------------------
The Staging Webservice (normally found in "/sitecore modules/staging/
service/api.asmx") used for transmitting files between the Sitecore
Master and Slave Server is vulnerable to authentication bypass and
therefore
* files can be uploaded in arbitrary directories on the server
* files can be downloaded from arbitrary directories on the server
* directory listings of the whole server can be received
* the webserver cache can be deleted 

An attacker is able to upload a shell, modify or delete sensitive data
or gain the whole source code of the application. Furthermore it is
possible to retrieve directory listings of directories of the whole
server and the webroot. All these actions are performed with the rights
of the webserver user. One tested server allowed us to compromise the
whole server by uploading a shell into the webroot.


Proof of concept:
-----------------
Authentication bypass and file manipulation
===========================================
To exploit this vulnerability, the example of "api.asmx?op=Upload" can
be used in a slightly modified form. The parameters "Username" and
"Password" can be set at random, but they must not be empty. The
parameter "File" contains the base64 encoded content of the file which
should be uploaded. For the parameters "append" and "isEncrypted" the
value "false" is most suitable. In "Destination" the location of the
file on the remote system can be specified. The following POST-request
creates a file named test.txt in C:\temp. It would also be possible to
upload a shell into the Webroot.

POST /sitecore%20modules/staging/service/api.asmx HTTP/1.1
Host: hostToExploit
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 599

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope";>
  <soap12:Body>
    <Upload xmlns="http://Sitecore/modules/Staging/API/";>
      [Soap-Stuff]
    </Upload>
  </soap12:Body>
</soap12:Envelope>

The same applies to the webservice operations "Download", "List" and 
"Clear Cache".


Vulnerable versions:
--------------------
Sitecore Staging Module  
* <= v5.4.0 rev.080625

Vendor contact timeline:
------------------------
2009-10-09: Contacting Sitecore.
2009-10-12: Reply from Sitecore.
2009-10-12: Preliminary advisory with full vulnerability details was
sent to Sitecore.
2009-12-02: Requested status of the planned security fixes.
2009-12-03: Reply from Sitecore, fixes are now in second iteration in
their QA department and they expect to release this before Christmas.
2009-12-03: Reply from Sitecore, vulnerabilities have been fixed and
new version has been released.
2009-12-16: Final version of the advisory sent to Sitecore and release 
            date was scheduled.
2009-12-16: Reply from Sitecore.
2009-12-17: Release of the advisory.


Solution:
---------
Update to Sitecore Staging Module v5.4.0 rev.091111

Workaround:
-----------
Delete the Staging Webservice (normally found in "/sitecore modules/
staging/service/api.asmx") to prevent arbitrary file manipulation. 
The Sitecore Staging Module can thereby only use FTP for transmitting 
files between the Sitecore Master and Slave with the Sitecore Staging 
Module.

Advisory URL:
-------------
https://www.sec-consult.com/advisories_e.html#a63

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SEC Consult Unternehmensberatung GmbH

Office Vienna
Mooslackengasse 17
A-1190 Vienna
Austria

Tel.: +43 / 1 / 890 30 43 - 0
Fax.: +43 / 1 / 890 30 43 - 25
Mail: research at sec-consult dot com
www.sec-consult.com

SEC Consult conducts periodical information security workshops on ISO 
27001/BS 7799 in cooperation with BSI Management Systems. For more 
information, please refer to https://www.sec-consult.com/academy_e.html

EOF L. Weichselbaum / @2009