Bug 1326725 (CVE-2016-4003) - CVE-2016-4003 struts2: cross-site scripting vulnerability in the URLDecoder function
Summary: CVE-2016-4003 struts2: cross-site scripting vulnerability in the URLDecoder f...
Keywords:
Status: CLOSED NOTABUG
Alias: CVE-2016-4003
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1326727
TreeView+ depends on / blocked
 
Reported: 2016-04-13 11:27 UTC by Andrej Nemec
Modified: 2021-02-17 04:04 UTC (History)
11 users (show)

Fixed In Version: struts2 2.3.28
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-04-13 16:43:13 UTC
Embargoed:


Attachments (Terms of Use)

Description Andrej Nemec 2016-04-13 11:27:45 UTC
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 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.

External references:

http://struts.apache.org/docs/s2-028.html

Comment 1 Chess Hazlett 2019-09-17 20:26:17 UTC
Statement:

A previous statement by Red Hat related to this CVE, prior to August 2019, said that Apache Struts 2 is not included in any Red Hat products. This earlier statement was incorrect. While Struts 2 is not actively compiled, shipped, used, or enabled in any Red Hat provided final products, and does not cause any vulnerability in the product, struts2-core jars have been included in some products' source code packages. The inclusion was part of an import of the Google Guice repository, which includes struts2-core. Customers that build artefacts from our source code could be at risk. Red Hat will remove these artefacts from source code in future releases.

The products that included the Struts 2 artefacts in their source jars:
Fuse Service Works 6.0.0
Single Sign On 7.3.0+

If you have used the source package from one of these products to build artefacts on your system, you should do the following to remove potentially affected jars:
1. Run 'find . -name struts2*.jar' under the source location
2. Remove any files found
This will not affect the product, as the jar is included with the source of google-guice, but no functionality requiring struts2 is implemented.


Note You need to log in before you can comment on or make changes to this bug.