Vulnerability Note VU#112992
Apache Struts 2 framework REST plugin insecurely deserializes untrusted XML data
Original Release date: 06 Sep 2017 | Last revised: 06 Sep 2017

Overview
Apache Struts 2 framework, versions 2.5 to 2.5.12, with REST plugin insecurely deserializes untrusted XML data.

A remote, unauthenticated attacker can leverage this vulnerability to execute arbitrary code in the context of the Struts application.

Description
CWE-502: Deserialization of Untrusted Data – CVE-2017-9805
In Apache Struts 2 framework, versions 2.5 to 2.5.12, the REST plugin uses XStreamHandler with an instance of XStream to deserialize XML data.

Because there is no type filtering, a remote, unauthenticated attacker may send a specially crafted XML payload to execute arbitrary code in the context of the Struts application.

Refer to the researcher’s blog post for more information about this vulnerability.

A Metasploit module with exploit code is publicly available.

Impact
A remote, unauthenticated attacker may send a specially crafted XML payload to execute arbitrary code on vulnerable servers in the context of the Struts application.

Solution
Apply an update

The vendor has released version 2.5.13 to address this vulnerability. No workaround is possible according to the vendor, so patching is strongly recommended.
Remove or limit the REST plugin

If it is not used, consider removing the REST plugin. Per the vendor, it is also possible to limit its functionality to normal server pages or JSON with the following configuration change in struts.xml:

<constant name="struts.action.extensionquot; value="xhtml,,jsonquot; />

Vendor Information (Learn More)

VendorStatusDate NotifiedDate UpdatedApache StrutsAffected-06 Sep 2017If you are a vendor and your product is affected, let
us know.

CVSS Metrics (Learn More)

Group
Score
Vector

Base
10.0
AV:N/AC:L/Au:N/C:C/I:C/A:C

Temporal
8.3
E:F/RL:OF/RC:C

Environmental
8.3
CDP:ND/TD:H/CR:ND/IR:ND/AR:ND

References

https://cwe.mitre.org/data/definitions/502.html
https://struts.apache.org/docs/s2-052.html
https://lgtm.com/blog/apache_struts_CVE-2017-9805
https://github.com/rapid7/metasploit-framework/pull/8924/files

Credit

Man Yue Mo of lgtm is credited with reporting this vulnerability to the vendor.
This document was written by Joel Land.

Other Information

CVE IDs:
CVE-2017-9805

Date Public:
05 Sep 2017

Date First Published:
06 Sep 2017

Date Last Updated:
06 Sep 2017

Document Revision:
13

FeedbackIf you have feedback, comments, or additional information about this vulnerability, please send us email.

Leave a Reply