CVE-2016-3087:
Apache Struts vulnerable to arbitrary remote code execution due to improper input validation
9.8
CVSS ScoreBasic Information
CVE ID
GHSA ID
EPSS Score
-
CWE
Published
5/14/2022
Updated
12/29/2023
KEV Status
No
Technology
Java
Technical Details
CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
org.apache.struts:struts2-core | maven | >= 2.3.19, < 2.3.20.3 | 2.3.20.3 |
org.apache.struts:struts2-core | maven | >= 2.3.21, < 2.3.24.3 | 2.3.24.3 |
org.apache.struts:struts2-core | maven | >= 2.3.25, < 2.3.28.1 | 2.3.28.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The GitHub commit diff shows the removal of code in XSLTResult.java that fetched 'xslt.location' from the request parameter. This unvalidated input was used to set the XSLT stylesheet path, enabling path manipulation. The vulnerability documentation explicitly ties this improper input validation (CWE-20) to the REST Plugin's handling of the '!' operator when DMI is enabled. The patch's removal of this request-dependent path assignment confirms this as the root cause.