Vulnerability record · CVE-2016-3087 · published 7 June 2016
CVE-2016-3087: Apache Struts 2 REST Plugin RCE via Dynamic Method Invocation
Apache · Struts
Apache Struts versions 2.3.19 through 2.3.28, when Dynamic Method Invocation is enabled, fail to properly validate input passed through an exclamation mark operator to the REST Plugin. This allows remote attackers to execute arbitrary code on the server. The flaw is critical because it requires no authentication or user interaction and can lead to full system compromise.
Description
Apache Struts 2.3.19 to 2.3.20.2, 2.3.21 to 2.3.24.1, and 2.3.25 to 2.3.28, when Dynamic Method Invocation is enabled, allow remote attackers to execute arbitrary code via vectors related to an ! (exclamation mark) operator to the REST Plugin.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Automated analysis
critical priorityCVSS score of 9.8, public exploit availability, and high EPSS probability indicate an urgent need for patching and mitigation.
What it is
Apache Struts versions 2.3.19 through 2.3.28, when Dynamic Method Invocation is enabled, fail to properly validate input passed through an exclamation mark operator to the REST Plugin. This allows remote attackers to execute arbitrary code on the server. The flaw is critical because it requires no authentication or user interaction and can lead to full system compromise.
Impact
An unauthenticated remote attacker can execute arbitrary code with the privileges of the application server, potentially leading to complete host takeover, data theft, or lateral movement.
Attack surface
The vulnerability is reachable over the network via HTTP requests to the Struts REST Plugin when Dynamic Method Invocation is enabled. No authentication or user interaction is required, as indicated by the CVSS vector AV:N/AC:L/PR:N/UI:N.
Exploitation
Exploit code is publicly available on Exploit-DB, and EPSS indicates a high probability of exploitation (0.81873, 99.63rd percentile). The CVE is not listed in CISA KEV, but the presence of a public exploit and high EPSS score suggest active exploitation is likely.
What to do
- Upgrade to a non-vulnerable version of Apache Struts (2.3.29 or later) as per the vendor advisory S2-033.
- Disable Dynamic Method Invocation if it is not required for the application.
- Apply input validation and filtering to block exclamation mark operators in REST Plugin requests.
- Monitor for and restrict access to the REST Plugin endpoints if not needed.
- Review and harden server configurations to limit the impact of remote code execution.
Detection
- Monitor HTTP requests for exclamation mark characters in URLs targeting Struts REST endpoints.
- Inspect application logs for unexpected method invocations or errors related to the REST Plugin.
- Use network intrusion detection systems to detect known exploit patterns for CVE-2016-3087.
- Audit server processes for unusual child processes or command executions originating from the web server.
This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.
Affected products
1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.
References
Track CVE-2016-3087 inside VULONE
Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.
Related vulnerabilities
Same products first, then exploited flaws of the same weakness class.
Source: NIST National Vulnerability Database (record CVE-2016-3087), CISA KEV, FIRST EPSS (scores of 2026-09-26). This page is refreshed as NVD updates the record.