Every CVE Search/ Get API key

CVE-2016-3087

Apache Struts vulnerable to arbitrary remote code execution due to improper input validation

9.8 CriticalPublic exploitFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

81.9%Down 1.5 points since Feb 4, 2022
90%50%10%1%

What each source reports

NVD Score used 9.8

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.

Record
CVE-2016-3087
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-20
Updated
2026-11-02
CVE List No score

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.

Record
CVE-2016-3087
Updated
2026-11-02
EUVDEUVD-2022-4592 No score

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.

Record
EUVD-2022-4592
Updated
2026-11-03
GitHub AdvisoriesGHSA-mmj6-cjj4-hpr5 9.8

Apache Struts vulnerable to arbitrary remote code execution due to improper input validation

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.

Record
GHSA-mmj6-cjj4-hpr5
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-20
Updated
2026-11-02
OSV 9.8

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.

Record
CVE-2016-3087
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-mmj6-cjj4-hpr5 9.8

Apache Struts vulnerable to arbitrary remote code execution due to improper input validation

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.

Record
GHSA-mmj6-cjj4-hpr5
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-20
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
org.apache.struts:struts2-core
Maven
2.3.19 up to 2.3.20.3
2.3.20.3
org.apache.struts:struts2-core
Maven
2.3.21 up to 2.3.24.3
2.3.24.3
org.apache.struts:struts2-core
Maven
2.3.25 up to 2.3.28.1
2.3.28.1
org.apache.struts:struts2-core
Maven
2.3.19 up to 2.3.20.3, plus listed versions
2.3.202.3.20.1
2.3.20.3
org.apache.struts:struts2-core
Maven
2.3.21 up to 2.3.24.3, plus listed versions
2.3.242.3.24.1
2.3.24.3
org.apache.struts:struts2-core
Maven
2.3.25 up to 2.3.28.1, plus listed versions
2.3.28
2.3.28.1

Public exploits

Links only. Every CVE stores no exploit code.

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, Exploit-DB, GitHub Advisories, Metasploit, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2016-3087 is a critical vulnerability (CVSS 9.8) in Apache Struts, published June 7, 2016. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 81.9%, the 99th percentile. Fixed in org.apache.struts:struts2-core 2.3.20.3.

References

Show 5 moreShow less
MoveEnter Open