Apache Struts 2.1.x >= 2.1.2 / 2.2.x / 2.3.x < 2.3.34 / 2.5.x < 2.5.13 Multiple Vulnerabilities (S2-050 - S2-053)

critical Nessus Plugin ID 102960

Synopsis

A web application running on the remote host uses a Java framework that is affected by multiple vulnerabilities.

Description

The version of Apache Struts running on the remote host is 2.1.x subsequent or equal to 2.1.2, 2.2.x, 2.3.x prior to 2.3.34, or 2.5.x prior to 2.5.13. It is, therefore, affected by multiple vulnerabilities:

- A remote code execution vulnerability in the REST plugin. The Struts REST plugin uses an XStreamHandler with an instance of XStream for deserialization and does not perform any type filtering when deserializing XML payloads. This can allow an unauthenticated, remote attacker to execute arbitrary code in the context of the Struts REST plugin by sending a specially crafted XML payload. (CVE-2017-9805)

- A denial of service vulnerability in the XStream XML deserializer in the XStreamHandler used by the REST plugin. (CVE-2017-9793)

- A denial of service vulnerability when using URLValidator.
(CVE-2017-9804)

- A flaw exists related to 'freemarker' tags, expression literals, 'views/freemarker/FreemarkerManager.java', and forced expressions that allows arbitrary code execution.
(CVE-2017-12611)

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.

Solution

Upgrade to Apache Struts version 2.3.34 or 2.5.13 or later.

See Also

https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.34

https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.13

https://cwiki.apache.org/confluence/display/WW/S2-050

https://cwiki.apache.org/confluence/display/WW/S2-051

https://cwiki.apache.org/confluence/display/WW/S2-052

https://cwiki.apache.org/confluence/display/WW/S2-053

https://lgtm.com/blog/apache_struts_CVE-2017-9805_announcement

https://lgtm.com/blog/apache_struts_CVE-2017-9805

http://www.nessus.org/u?45c4be36

https://seclists.org/oss-sec/2017/q3/406

Plugin Details

Severity: Critical

ID: 102960

File Name: struts_2_5_13.nasl

Version: 1.21

Type: combined

Agent: windows, macosx, unix

Family: Misc.

Published: 9/5/2017

Updated: 4/25/2023

Configuration: Enable thorough checks

Supported Sensors: Frictionless Assessment Agent, Nessus Agent, Nessus

Risk Information

VPR

Risk Factor: Critical

Score: 9.0

CVSS v2

Risk Factor: High

Base Score: 7.5

Temporal Score: 6.5

Vector: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS Score Source: CVE-2017-12611

CVSS v3

Risk Factor: Critical

Base Score: 9.8

Temporal Score: 9.4

Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Temporal Vector: CVSS:3.0/E:H/RL:O/RC:C

Vulnerability Information

CPE: cpe:/a:apache:struts

Exploit Available: true

Exploit Ease: Exploits are available

Patch Publication Date: 9/5/2017

Vulnerability Publication Date: 9/5/2017

CISA Known Exploited Vulnerability Due Dates: 5/3/2022

Exploitable With

Core Impact

Metasploit (Apache Struts 2 REST Plugin XStream RCE)

Elliot (Apache Struts REST Plugin XStream RCE)

Reference Information

CVE: CVE-2017-12611, CVE-2017-9793, CVE-2017-9804, CVE-2017-9805

BID: 100609, 100611, 100612, 100829