CVE-2016-3081: Apache Struts Command Injection Vulnerability
Apache · Struts · NVD published 2016-04-26 · posted 2026-10-21 · last modified 2026-10-09
What it is
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 method: prefix, related to chained expressions.
| Weakness | CWE-77 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (source: [email protected]) |
| CISA due date | 2026-10-11 (for US federal agencies under BOD; a good deadline for everyone) |
| ATT&CK tactics | Initial Access → Execution |
Exploitation evidence
First exploit evidence seen: 2016-04-27 (earliest date across the sources below).
Exploited in the wild
- CISA KEV: listed since 2026-10-08. Source
Public exploit code
Metasploit
exploit/multi/http/struts_dmi_exec: Apache Struts Dynamic Method Invocation Remote Code Execution (disclosure 2016-04-27)
Exploit-DB
- EDB-39756: Apache Struts - Dynamic Method Invocation Remote Code Execution (Metasploit) (2016-05-02, verified)
Sources: CISA KEV · Rapid7 Metasploit Framework module metadata · Exploit-DB (OffSec).
Defend the Chain
The attack chain for CVE-2016-3081 laid across the MITRE ATT&CK Enterprise tactics. Solid cards come from the MITRE CTID KEV mappings; dashed cards are inferred by CVERadar from the CWE or description. Correct defences are real ATT&CK mitigations for that technique.
Pick a red technique card on the board, then choose the defence that stops it.
Defend against T1190 Exploit Public-Facing Application Inferred
Inferred from CWE CWE-77
How to fix it
CISA required action
Apply mitigations in accordance with vendor instructions, ensuring compliance with CISA’s BOD 26-04 Prioritizing Security Updates Based on Risk (see URL in Notes) guidance and CISA’s “Forensics Triage Requirements” (see URL in Notes). Follow applicable BOD 26-04 guidance for cloud services or discontinue use of the product if mitigations are unavailable. Stakeholders are responsible for evaluating each asset's internet exposure and ensuring adherence to BOD 26-04 patching guidelines. (source: CISA KEV)
Fixed versions
- apache struts: upgrade to 2.3.20.3 or later (affected from 2.3.20)
- apache struts: upgrade to 2.3.24.3 or later (affected from 2.3.21)
- apache struts: upgrade to 2.3.28.1 or later (affected from 2.3.25)
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
- https://cwiki.apache.org/confluence/display/WW/S2-032 (CISA KEV notes)
- http://www.oracle.com/technetwork/security-advisory/cpujul2016-2881720.html (Patch, Third Party Advisory)
- https://struts.apache.org/docs/s2-032.html (Patch, Vendor Advisory)
MITRE ATT&CK mitigations for this chain
- M1048 Application Isolation and Sandboxing (for T1190, T1203) : Application isolation will limit what other processes and system features the exploited target can access.
- M1037 Filter Network Traffic (for T1190) : Restrict outbound network traffic from public-facing servers to prevent unauthorized connections from initiating communications with attacker-controlled infrastructure. While this may not prevent the initial exploitation, it limits the attacker's ability to verify and control the compromised server post-exploit, reduci
- M1030 Network Segmentation (for T1190) : Segment externally facing servers and services from the rest of the network with a DMZ or on separate hosting infrastructure.
- M1016 Vulnerability Scanning (for T1190) : Regularly scan externally facing systems for vulnerabilities and establish procedures to rapidly patch systems when critical vulnerabilities are discovered through scanning and through public disclosure.
- M1026 Privileged Account Management (for T1190, T1059) : Use least privilege for service accounts will limit what permissions the exploited process gets on the rest of the system.
- M1050 Exploit Protection (for T1190, T1203) : Web Application Firewalls may be used to limit exposure of applications to prevent exploit traffic from reaching the application.
- M1035 Limit Access to Resource Over Network (for T1190) : Ensure that all publicly exposed services are actually intended to be so, and restrict access to any that should only be available internally.
- M1051 Update Software (for T1190, T1203) : Update software regularly by employing patch management for externally exposed applications.
- M1033 Limit Software Installation (for T1059) : Prevent user installation of unrequired command and scripting interpreters.
- M1045 Code Signing (for T1059) : Where possible, only permit execution of signed scripts.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
- Execution: Watch for the service process spawning shells or script interpreters (cmd.exe, powershell, sh, bash, python) via EDR process-tree rules.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.
Sources
- NVD: CVE-2016-3081
- CVE.org record
- CISA Known Exploited Vulnerabilities catalog
- FIRST EPSS (2026-10-24)
- http://packetstormsecurity.com/files/136856/Apache-Struts-2.3.28-Dynamic-Method-Invocation-Remote-Code-Execution.html (Exploit, Third Party Advisory)
- http://www.huawei.com/en/psirt/security-advisories/huawei-sa-20160527-01-struts2-en (Third Party Advisory)
- http://www.oracle.com/technetwork/security-advisory/cpuoct2016-2881722.html (Third Party Advisory)
- http://www.rapid7.com/db/modules/exploit/linux/http/struts_dmi_exec (Third Party Advisory, Broken Link)
- http://www.rapid7.com/db/modules/exploit/multi/http/struts_dmi_exec (Third Party Advisory)
- http://www.securityfocus.com/bid/87327 (Third Party Advisory, VDB Entry)
- http://www.securityfocus.com/bid/91787 (Third Party Advisory, VDB Entry)
- http://www.securitytracker.com/id/1035665 (Third Party Advisory, VDB Entry)
- https://www.exploit-db.com/exploits/39756/ (Exploit, Third Party Advisory, VDB Entry)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2016-3081 (US Government Resource)