ZeroHour

CVE-2017-9805

KEV PoC mass

XML Deserialization RCE in Apache Struts 2 REST Plugin

CISA: Apache Struts Deserialization of Untrusted Data Vulnerability

CVSS 3.1
8.1 high
EPSS
99%p100
Published
()
KEV added
AI analysis

CVE-2017-9805 is an unsafe deserialization vulnerability in the REST plugin of Apache Struts 2, which uses the XStream library to deserialize XML request payloads without any type filtering. An attacker triggers it by sending a crafted XML payload to an endpoint handled by the REST plugin, causing the payload to be deserialized into arbitrary objects. Successful exploitation yields remote code execution on the server with the privileges of the web application, typically enough to fully take over the host. Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 are affected, including products from Cisco and NetApp that bundle vulnerable Struts versions. The flaw has a public proof-of-concept exploit, is on CISA's Known Exploited Vulnerabilities catalog, and was reported as under active exploitation after its 2017 disclosure, although the Apache Foundation disputed suggestions that this specific flaw was used in the Equifax breach.

What to do: Upgrade Apache Struts to 2.3.34, 2.5.13, or later, or apply the fixed updates for any Cisco or NetApp product that embeds Struts per their advisories. If patching is not immediate, remove or disable the REST plugin, or restrict the XML content types it accepts. Inventory internet-facing applications for Struts REST endpoints and hunt for suspicious XML POSTs, since the CVE is on the CISA KEV list and was reported as actively exploited.

Affected
Apache Struts 2 (REST plugin)2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13
Cisco Digital Media ManagerBundled Struts within affected ranges (2.1.1 to 2.3.33 or 2.5.0 to 2.5.12); exact product versions per Cisco advisory
Cisco Hosted Collaboration SolutionBundled Struts within affected ranges (2.1.1 to 2.3.33 or 2.5.0 to 2.5.12); exact product versions per Cisco advisory
Cisco Media Experience EngineBundled Struts within affected ranges (2.1.1 to 2.3.33 or 2.5.0 to 2.5.12); exact product versions per Cisco advisory
Cisco Network Performance AnalysisBundled Struts within affected ranges (2.1.1 to 2.3.33 or 2.5.0 to 2.5.12); exact product versions per Cisco advisory
Cisco Video Distribution Suite for Internet StreamingBundled Struts within affected ranges (2.1.1 to 2.3.33 or 2.5.0 to 2.5.12); exact product versions per Cisco advisory
NetApp OnCommand BalanceBundled Struts within affected ranges (2.1.1 to 2.3.33 or 2.5.0 to 2.5.12); exact product versions per NetApp advisory
Estimated exposure
mass~100,000-300,000+ internet-exposed Struts servers and applications (only a subset exposing the vulnerable REST plugin); embedded Cisco/NetApp deployments… — Public internet-wide scans during the 2017 Struts disclosure wave found on the order of 300,000 internet-facing servers running Struts, of which only those exposing the REST plugin for XML content are vulnerable, plus an unknown number of…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

The REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with an instance of XStream for deserialization without any type filtering, which can lead to Remote Code Execution when deserializing XML payloads.

CISA Known Exploited Vulnerability
Affected
Apache Struts
Required action
Apply updates per vendor instructions.
Due date
Ransomware use
Unknown
Vendors
apachecisconetapp
Products
struts, digital media manager, hosted collaboration solution, media experience engine, network performance analysis, video distribution suite for internet streaming, oncommand balance
Weakness
CWE-502
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news