Apache Struts2 Remote Command Execution

July 29, 2010

Apache Struts2 is originated from 2 different projects, the Apache Struts and WebWork. In 2008, the two projects combined to create Struts2, which is a MVC framework for building Java web-based applications. OGNL stands for Object-Graph Navigation Language; it is an expression language for getting and setting properties of Java objects.

A remote command execution vulnerability exists in Apache Struts2. The vulnerability is due to insufficient validation when evaluating request parameter names as OGNL statements. A remote attacker can exploit this vulnerability by sending a crafted HTTP request to the target server. Successful exploitation of this vulnerability would allow the attacker to execute arbitrary command with the privileges of the target service. In the case command execution is not successful, the vulnerable process may terminate abnormally, resulting a denial of service condition.

The CVE identifier for this vulnerability is CVE-2010-1870.

SonicWALL has released an IPS signature to detect and block specific exploitation attempts targeting this vulnerability. The signature is listed below:

  • 4680 Apache Struts2/XWork Remote Command Execution