CVE-2016-4003 json
Cross-site Scripting in Apache Struts
published 2016-04-12 10 y ago modified 2026-06-17 4 mo ago also GHSA-m3x6-9v6h-4g28 , EUVD-2022-4483
- cvss
- 6.1
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 11.6%
- EPSS 11.6% chance of exploitation in 30 days, percentile 96%
- public exploits
- 0
- none known
Summary
Cross-site scripting (XSS) vulnerability in the URLDecoder function in JRE before 1.8, as used in Apache Struts 2.x before 2.3.28, when using a single byte page encoding, allows remote attackers to inject arbitrary web script or HTML via multi-byte characters in a url-encoded parameter.
Patch / fix
- maven org.apache.struts:struts2-core 2.3.28
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2016-4003 updated cvss 4.3
struts2: cross-site scripting vulnerability in the URLDecoder function
-
Red Hat JBoss Fuse Service Works 6 struts2-core struts2-corenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
11.56% chance of exploitation in the next 30 days, higher than 96% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 6.1 | CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
| NVD | 2.0 | 4.3 | AV:N/AC:M/Au:N/C:N/I:P/A:N |
| GitHub | 3.0 | 6.1 | CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | org.apache.struts:struts2-core | >=2.0.0, <2.3.28 |
2.3.28 |
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/apache/struts/commit/4720f46a63caaf9db97ba27dc51ac5ad21e66bdc
web
-
github.com
/apache/struts/commit/5421930b49822606792f36653b17d3d95ef106f9
web
-
github.com
/apache/struts/commit/72471d7075681bea52046645ad7aa34e9c53751e
web
-
github.com
/apache/struts/commit/76f188406eb9f17a06afcb5f49f0c44d749da0d2
web
-
github.com
/apache/struts/commit/a89bbe22cd2461748d595a89a254de888a415e6c
web
-
struts.apache.org
/docs/s2-028.html
web, vendor-advisory
-
issues.apache.org
/jira/browse/WW-4507
web, vendor-advisory
-
securityfocus.com
/bid/86311
vdb-entry, third-party-advisory
-
securitytracker.com
/id/1035268
vdb-entry, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2016-4003
advisory
-
github.com
/apache/struts
package
-
web.archive.org
/web/20161119142317/http://www.securityfocus.com/bid/86311
web
-
web.archive.org
/web/20161221184936/http://www.securitytracker.com/id/1035268
web
Sources
- CVE List CVE-2016-4003
- GitHub Advisory GHSA-m3x6-9v6h-4g28
- NVD CVE-2016-4003
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.