The OGNL extensive expression evaluation capability in XWork in Struts 2.0.0 through…
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- — Not recorded in CVSS 2.0
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · Partial · None
- Fix status
- Fixed
Attack profile from CVSS 2.0 · NVD. Fix status from CNA and GitHub.
Summary
The OGNL extensive expression evaluation capability in XWork in Struts 2.0.0 through 2.1.8.1, as used in Atlassian Fisheye, Crucible, and possibly other products, uses a permissive whitelist, which allows remote attackers to modify server-side context objects and bypass the "#" protection mechanism in ParameterInterceptors via the (1) #context, (2) #_memberAccess, (3) #root, (4) #this, (5) #_typeResolver, (6) #_classResolver, (7) #_traceEvaluations, (8) #_lastEvaluation, (9) #_keepLastEvaluation, and possibly other OGNL context variables, a different vulnerability than CVE-2008-6504.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | org.apache.struts:struts2-core (Maven) | before 2.2.1 | 2.2.1 | Patch available | GHSA-x5fc-pgpx-59j5 |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- org.apache.struts:struts2-core (Maven) Vendor— Affected before 2.2.1 Fixed in 2.2.1 Patch available GHSA-x5fc-pgpx-59j5
CPE configurations NVD · 26
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:apache:struts:2.0.0:*:*:*:*:*:*:* | 2.0.0 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.1:*:*:*:*:*:*:* | 2.0.1 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.2:*:*:*:*:*:*:* | 2.0.2 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.3:*:*:*:*:*:*:* | 2.0.3 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.4:*:*:*:*:*:*:* | 2.0.4 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.5:*:*:*:*:*:*:* | 2.0.5 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.6:*:*:*:*:*:*:* | 2.0.6 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.7:*:*:*:*:*:*:* | 2.0.7 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.8:*:*:*:*:*:*:* | 2.0.8 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.9:*:*:*:*:*:*:* | 2.0.9 | Vulnerable | Apache |
- cpe:2.3:a:apache:struts:2.0.0:*:*:*:*:*:*:* Versions 2.0.0 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.1:*:*:*:*:*:*:* Versions 2.0.1 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.2:*:*:*:*:*:*:* Versions 2.0.2 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.3:*:*:*:*:*:*:* Versions 2.0.3 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.4:*:*:*:*:*:*:* Versions 2.0.4 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.5:*:*:*:*:*:*:* Versions 2.0.5 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.6:*:*:*:*:*:*:* Versions 2.0.6 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.7:*:*:*:*:*:*:* Versions 2.0.7 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.8:*:*:*:*:*:*:* Versions 2.0.8 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.9:*:*:*:*:*:*:* Versions 2.0.9 Vulnerable ·Apache
Show 16 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:apache:struts:2.0.10:*:*:*:*:*:*:* | 2.0.10 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.11:*:*:*:*:*:*:* | 2.0.11 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.11.1:*:*:*:*:*:*:* | 2.0.11.1 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.11.2:*:*:*:*:*:*:* | 2.0.11.2 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.12:*:*:*:*:*:*:* | 2.0.12 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.13:*:*:*:*:*:*:* | 2.0.13 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.0.14:*:*:*:*:*:*:* | 2.0.14 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.0:*:*:*:*:*:*:* | 2.1.0 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.1:*:*:*:*:*:*:* | 2.1.1 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.2:*:*:*:*:*:*:* | 2.1.2 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.3:*:*:*:*:*:*:* | 2.1.3 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.4:*:*:*:*:*:*:* | 2.1.4 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.5:*:*:*:*:*:*:* | 2.1.5 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.6:*:*:*:*:*:*:* | 2.1.6 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.8:*:*:*:*:*:*:* | 2.1.8 | Vulnerable | Apache |
| cpe:2.3:a:apache:struts:2.1.8.1:*:*:*:*:*:*:* | 2.1.8.1 | Vulnerable | Apache |
- cpe:2.3:a:apache:struts:2.0.10:*:*:*:*:*:*:* Versions 2.0.10 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.11:*:*:*:*:*:*:* Versions 2.0.11 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.11.1:*:*:*:*:*:*:* Versions 2.0.11.1 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.11.2:*:*:*:*:*:*:* Versions 2.0.11.2 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.12:*:*:*:*:*:*:* Versions 2.0.12 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.13:*:*:*:*:*:*:* Versions 2.0.13 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.0.14:*:*:*:*:*:*:* Versions 2.0.14 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.0:*:*:*:*:*:*:* Versions 2.1.0 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.1:*:*:*:*:*:*:* Versions 2.1.1 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.2:*:*:*:*:*:*:* Versions 2.1.2 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.3:*:*:*:*:*:*:* Versions 2.1.3 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.4:*:*:*:*:*:*:* Versions 2.1.4 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.5:*:*:*:*:*:*:* Versions 2.1.5 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.6:*:*:*:*:*:*:* Versions 2.1.6 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.8:*:*:*:*:*:*:* Versions 2.1.8 Vulnerable ·Apache
- cpe:2.3:a:apache:struts:2.1.8.1:*:*:*:*:*:*:* Versions 2.1.8.1 Vulnerable ·Apache
Remediation
- Fix · GHSA-x5fc-pgpx-59j5 org.apache.struts:struts2-core (Maven) Fixed in 2.2.1 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2010-1870
- 2026-10-03 Alias added: GHSA-x5fc-pgpx-59j5
References
Exploit 1
Advisory 3
Other 9
- 66280
- http://struts.apache.org/2.2.1/docs/s2-005.html
- http://blog.o0o.nu/2010/07/cve-2010-1870-struts2xwork-remote.html
- http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20140709-struts2
- 20100713 CVE-2010-1870: Struts2 remote commands execution
- 20201020 LISTSERV Maestro Remote Code Execution Vulnerability
- http://packetstormsecurity.com/files/159643/LISTSERV-Maestro-9.0-8-Remote-Code-Execution.html
- https://cwiki.apache.org/confluence/display/WW/S2-003
- https://github.com/apache/struts
More Apache Struts vulnerabilities
- TI-2020-13278 Expression language injection in Apache Struts KEVCVSS 3.1CRITICAL 9.8
- TI-2017-07171 Improper input validation in Apache Struts KEVCVSS 3.1CRITICAL 9.8
- TI-2017-03639 Improper handling of exceptional conditions in Apache Struts KEVCVSS 3.1CRITICAL 9.8
- TI-2013-02013 Apache Struts 2.0.0 through 2.3.15 allows remote attackers to execute arbitrary OGNL… KEVCVSS 3.1CRITICAL 9.8
- TI-2012-00357 The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter… KEVCVSS 3.1CRITICAL 9.8
- TI-2018-08433 Improper input validation in Apache Struts KEVCVSS 3.1HIGH 8.1
Sources
- CVE-2010-1870 · CVE Program
- CVE-2010-1870 · NVD
- FIRST EPSS
- GHSA-x5fc-pgpx-59j5 · GitHub Advisory Database · CC BY 4.0
- CVE-2010-1870 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences