CVE-2016-4003 Cross-site Scripting in Apache Struts

Medium 6.1 Published Updated

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.

PackageAffectedFixed in
org.apache.struts:struts2-core MavenFrom 2.0.02.3.28
org.apache.struts:struts2-core MavenFrom 2.0.02.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.

All Apache Struts vulnerabilities

Sources

Also known as CVE-2016-0759, GHSA-m3x6-9v6h-4g28.

Is CVE-2016-4003 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free