...
Who should read this | All Struts 2 developers and users |
---|---|
Impact of vulnerability | Affects of a cross-site scripting vulnerability. |
Maximum security rating | Important |
Recommendation | Ugrade Upgrade runtime JRE to a recent major version, preferably 1.8. Alternatively upgrade to Struts 2.3.2528 |
Affected Software | Struts 2.0.0 - Struts Struts 2.3.24.1 |
Reporter | WhiteHat Security (whitehatsec.com) |
CVE Identifier | CVE-2016-4003 |
Problem
When using a single byte page encoding such as ISO-8895-1, an attacker might submit a non-spec URL-encoded parameter value including multi-byte characters.
Struts 2 used the the standard JRE URLDecoder to decode parameter values. Especially JRE 1.5's URLDecoder implementation seems to be broken to the point that this non-spec encoding isn't rejected / filtered. In later JREs the issue was fixed, best known solution is found in JRE 1.8.
...
Alternatively upgrade to Struts 2.3.2528, which includes and uses a safe URLDecoder implementation from Apache Tomcat
...
No issues expected when upgrading to Struts 2.3.2528
Workaround
Use UTF-8 for page and parameter encoding.
...