Patchfirst
CVE-2016-3081 KEVPublic exploit High · 8.1 EPSS 96.5%

Apache Struts Command Injection Vulnerability

Apache · Struts

Summary

Apache Struts 2, in the affected versions 2.3.19 through 2.3.28 (including the listed sub-ranges), contains a command injection flaw in the handling of Dynamic Method Invocation, where the "method:" prefix is not properly neutralised in chained expressions. An remote attacker with no privileges and no user interaction can execute arbitrary code, but only when Dynamic Method Invocation is enabled in the application's configuration.

Official description · NVD

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.

Breakdown
73.6 / 100
Exploited
Yes, in CISA KEV
Reports
0
Tactics
2/15

How an attack unfolds

Based on mappings. Select a step to see the evidence.
  1. How attackers get in

  2. What they do

First seen exploited 10 years after disclosure. Public exploit code (Metasploit) appeared 1 day after disclosure.

  1. Disclosedday 0
  2. Public exploit codeMetasploit+1 day
  3. First seen exploitedVulnCheck KEV evidence+10 yrs
  4. Added to CISA KEVEU database agrees+10 yrs

CISA KEV listing is when exploitation was confirmed, not necessarily the first attack.

7 fixes in struts2-core over 3 months. The latest fix listed for struts2-core is 2.3.29.

Fixes in struts2-coreMaven package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 2.3.24.3CVE-2016-30937 Jun 2016
  2. 2.3.28CVE-2016-216212 Apr 2016
  3. 2.3.28CVE-2016-400312 Apr 2016
  4. 2.3.28.1CVE-2016-308126 Apr 2016KEV
  5. 2.3.28.1CVE-2016-308226 Apr 2016
  6. 2.3.28.1CVE-2016-30877 Jun 2016
  7. 2.3.29CVE-2016-44384 Jul 2016Latest listed

techniques

2 , grouped by in kill-chain order, 2 cited passages 2

Initial AccessTA0001

Exploit Public-Facing Application T1190 Medium
AI mapping from the description · how it is exploited

remote unauthenticated exploitation of public-facing web framework

allow remote attackers to execute arbitrary code
From the official description (NVD) Original (opens in a new tab) ↗

ExecutionTA0002

Command and Scripting Interpreter T1059 Medium
AI mapping from the description · primary impact

arbitrary code execution via OGNL expression injection

allow remote attackers to execute arbitrary code
From the official description (NVD) Original (opens in a new tab) ↗

Detection

0 rules for this CVE · 244 general rules for its techniques

Rules for this CVE

0 that reference CVE-2016-3081 directly.

CVE-specific rules are not available in this build. Search SigmaHQ ↗

Sigma rules © SigmaHQ, Detection Rule License 1.1; linked, not reproduced.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: org.apache.struts:struts2-core.

Mavenorg.apache.struts:struts2-coreGHSA-8c6j-ffmf-q6vm

Upgrade to 2.5.33

Fixes this CVE and 9 other known vulnerabilities in this package (CVE-2016-3087, CVE-2017-12611, +7).

Still affected on this line by CVE-2024-53677 (fixed in 6.4.0, a newer line); CVE-2025-68493 (no fix published).

Set the version to 2.5.33 or later in your pom.xml or build.gradle.

First fixed in 2.3.28.1 for CVE-2016-3081.

Affected versions, by release line

If you runUpgrade to
2.3.25 up to 2.3.28.12.5.33first fix for this CVE: 2.3.28.1
2.3.21 up to 2.3.24.3

Still affected on this line by CVE-2017-12611 (fixed in 2.3.34, a newer line); CVE-2017-5638 (fixed in 2.3.32, a newer line); CVE-2018-11776 (fixed in 2.3.35, a newer line); CVE-2019-0230 (fixed in 2.5.22, a newer line); CVE-2019-0233 (fixed in 2.5.22, a newer line); CVE-2020-17530 (fixed in 2.5.26, a newer line); CVE-2021-31805 (fixed in 2.5.30, a newer line); CVE-2023-50164 (fixed in 2.5.33, a newer line); CVE-2024-53677 (fixed in 6.4.0, a newer line); CVE-2025-68493 (no fix published).

2.3.24.3
2.3.19 up to 2.3.20.3

Still affected on this line by CVE-2017-12611 (fixed in 2.3.34, a newer line); CVE-2017-5638 (fixed in 2.3.32, a newer line); CVE-2018-11776 (fixed in 2.3.35, a newer line); CVE-2019-0230 (fixed in 2.5.22, a newer line); CVE-2019-0233 (fixed in 2.5.22, a newer line); CVE-2020-17530 (fixed in 2.5.26, a newer line); CVE-2021-31805 (fixed in 2.5.30, a newer line); CVE-2023-50164 (fixed in 2.5.33, a newer line); CVE-2024-53677 (fixed in 6.4.0, a newer line); CVE-2025-68493 (no fix published).

2.3.20.3

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

Also mentioned in 26 community threat pulses (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

12 links, grouped by NVD tag (11 duplicates merged)
↑ ↓ chooseEnter openEsc close