CVE-2016-4003 Cross-site Scripting in Apache Struts
Remote attackers can inject arbitrary web script via multi-byte characters in URL-encoded parameters when using single-byte page encoding.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2016-4003?
CVE-2016-4003 is a medium-severity cross-site scripting vulnerability in Apache Struts, published on 12 Apr 2016. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
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.
Weakness: CWE-79
Which versions are affected by CVE-2016-4003?
2 open source packages ship an affected version, including org.apache.struts:struts2-core. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
org.apache.struts:struts2-core Maven | From 2.0.0 | 2.3.28 |
org.apache.struts:struts2-core Maven | From 2.0.0 | 2.3.28 |
Products include Apache Struts.
How do I fix CVE-2016-4003?
Upgrade org.apache.struts:struts2-core to 2.3.28 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2016-4003 being exploited?
There is no known exploitation of CVE-2016-4003 in the wild and no public exploit code.
Other vulnerabilities in Apache Struts
Sources
Also known as CVE-2016-0759, GHSA-m3x6-9v6h-4g28.