Apache Struts 2 ParametersInterceptor OGNL Command Injection
Added: 03/26/2012CVE: CVE-2011-3923
BID: 51628
OSVDB: 78109
Background
Apache Struts is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model-view-controller (MVC) architecture.Problem
Struts uses Object-Graph Navigation Language (OGNL) to provide extensive expression evaluation capabilities. Struts 2 versions prior to 2.3.1.2 allow OGNL expressions to be evaluated via parentheses. The ParametersInterceptor class is responsible for passing user-supplied parameters to the application stack. Because ParametersInterceptor does not filter parentheses, it is possible for a user to supply OGNL expressions inside Parentheses, which could result in the execution of arbitrary system commands.Resolution
Upgrade to Struts 2.3.1.2 or later.References
http://struts.apache.org/2.x/docs/s2-008.htmlhttps://www.sec-consult.com/files/20120104-0_Apache_Struts2_Multiple_Critical_Vulnerabilities.txt
Limitations
This exploit has been tested against Apache Software Foundation Struts 2.3.1.1 on Windows Server 2003 SP2 English (DEP OptOut) and Windows Server 2008 SP2 (DEP OptOut).The executable smbclient must be available on the exploit server, and a valid SMB user with permission to write to the SMB share is required. The smb password is not allowed to contain single quotes (').
Platforms
WindowsBack to exploit index