CVE-2016-4438
Arbitrary code execution in Apache Struts 2
CVE-2016-4438 is a critical vulnerability (CVSS 9.8) in Apache Struts, published July 4, 2016. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 16.7%, the 97th percentile. Fixed in org.apache.struts:struts2-core 2.3.29.
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
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
What each source reports
NVD Score used
9.8
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
- Record
CVE-2016-4438- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Weakness
- CWE-20
- Updated
- 2026-11-02
CVE List No score
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
- Record
CVE-2016-4438- Updated
- 2026-11-02
EUVDEUVD-2022-2421 No score
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
- Record
EUVD-2022-2421- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-4prj-vw9j-v6pr
9.8
Arbitrary code execution in Apache Struts 2
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
- Record
GHSA-4prj-vw9j-v6pr- CVSS 3.0
- 9.8 Critical
CVSS: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
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
- Record
CVE-2016-4438- CVSS 3.0
- 9.8 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-4prj-vw9j-v6pr
9.8
Arbitrary code execution in Apache Struts 2
The REST plugin in Apache Struts 2 2.3.19 through 2.3.28.1 allows remote attackers to execute arbitrary code via a crafted expression.
- Record
GHSA-4prj-vw9j-v6pr- CVSS 3.0
- 9.8 Critical
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
org.apache.struts:struts2-coreMaven |
2.3.19 up to 2.3.29 | 2.3.29 |
org.apache.struts:struts2-rest-pluginMaven |
2.3.19 up to 2.3.29 | 2.3.29 |
org.apache.struts:struts2-coreMaven |
2.3.19 up to 2.3.29, plus listed versions 2.3.202.3.20.12.3.20.32.3.242.3.24.12.3.24.32.3.282.3.28.1 |
2.3.29 |
org.apache.struts:struts2-rest-pluginMaven |
2.3.19 up to 2.3.29, plus listed versions 2.3.202.3.20.12.3.20.32.3.242.3.24.12.3.24.32.3.282.3.28.1 |
2.3.29 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | jason3e7/CVE-2016-4438 | 2016-06-16 |
| PoC in GitHub | tafamace/CVE-2016-4438 | 2018-11-19 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
References
bugzilla.redhat.com/show_bug.cgi?id=1348238
securityfocus.com/bid/91275
struts.apache.org/docs/s2-037.html
jvndb.jvn.jp/jvndb/JVNDB-2016-000110
oracle.com/technetwork/security-advisory/cpujul2017-3236622.html
jvn.jp/en/jp/JVN07710476/index.html
Show 7 moreShow less
nvd.nist.gov/vuln/detail/CVE-2016-4438
github.com/apache/struts/commit/6d7ac40dcede1793a4534a3dc249fd562d495e8c
github.com/apache/struts/commit/76eb8f38a33ad0f1f48464ee1311559c8d52dd6d
github.com/apache/struts/commit/c9c21378f2fb2ff21355c128c45e106ebd87ad7c
github.com/apache/struts/commit/deefeffd11425f0cd0b797cd86a9b3550234262b
github.com/advisories/GHSA-4prj-vw9j-v6pr
github.com/apache/struts