← Vulnerability feed

Vulnerability record · CVE-2017-9791 · published 10 July 2017

CVE-2017-9791: Apache Struts 1 plugin input validation flaw enables remote code execution

Apache · Struts

The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x may allow remote code execution when a malicious field value is passed in a raw message to the ActionMessage. The flaw is improper input validation (CWE-20), and because it can be reached over the network without credentials, it is a serious risk to any exposed Struts 1 plugin deployment.

9.8 CVSS 3.1 Critical CISA KEV since 10 Feb 2022 EPSS 99% · top 0.1% CWE-20 · Improper input validation
9.8CVSS 3.1 base score, v2 7.5
99%EPSS exploitation probability, 30 days
YesIn CISA KEV, fix deadline passed
1Affected product versions listed by NVD
15References
17 Jun 2026Last modified by NVD

Description

The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.

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

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 16 September 2026. Confidence: medium.

critical priorityCVSS 9.8, CISA KEV listing, and near-maximum EPSS probability indicate active exploitation risk with unauthenticated remote code execution.

What it is

The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x may allow remote code execution when a malicious field value is passed in a raw message to the ActionMessage. The flaw is improper input validation (CWE-20), and because it can be reached over the network without credentials, it is a serious risk to any exposed Struts 1 plugin deployment.

Impact

An unauthenticated remote attacker can potentially execute arbitrary code on the affected server, leading to full compromise of the application and host.

Attack surface

Reachable over the network via HTTP requests that supply a crafted field value in a raw ActionMessage; the CVSS vector indicates no authentication and no user interaction are required.

Exploitation

CVE-2017-9791 is listed in CISA KEV (added 2022-02-10) and has a very high EPSS 30-day probability of 0.98908 (percentile 0.99926); public exploit references exist on Exploit-DB, though no ransomware campaign use is documented.

What to do

  • Apply the vendor patch or upgrade per the Apache Struts S2-048 advisory and any applicable third-party patches (for example Oracle's alert).
  • If the Struts 1 plugin is not required, remove or disable it to eliminate the attack surface.
  • Restrict network access to Struts endpoints to trusted sources and place them behind a WAF or reverse proxy with input filtering.
  • Monitor for and block requests containing suspicious raw ActionMessage field values or known exploit patterns.
  • Verify no remaining 2.1.x or 2.3.x Struts 1 plugin instances are exposed and track remediation against the CISA KEV due date.

Detection

  • Search web and application logs for requests to Struts actions containing unusual or encoded field values in ActionMessage parameters.
  • Alert on outbound network connections or process creation from the web server process that are inconsistent with normal application behavior.
  • Use the Exploit-DB proof-of-concept patterns (42324, 44643) to build IDS/WAF signatures and test detection coverage.
  • Inventory hosts running Apache Struts 2.1.x/2.3.x with the Struts 1 plugin and confirm patch status.

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Exploitation in the wild

CISA added CVE-2017-9791 to the Known Exploited Vulnerabilities catalog on 10 February 2022 as "Apache Struts 1 Improper Input Validation Vulnerability". Required action: Apply updates per vendor instructions. Federal deadline 10 August 2022.

Affected products

1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

Track CVE-2017-9791 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

9.8CVE-2020-17530Apache Struts forced OGNL evaluation enables remote code executionApache Struts 2.0.0 through 2.5.25 performs forced OGNL evaluation on raw user input placed in tag attributes, allowing expression language injection…KEVEPSS 96%analysed9.8CVE-2017-5638Apache Struts 2 Jakarta Multipart parser remote code executionThe Jakarta Multipart parser in Apache Struts 2 mishandles exceptions and error messages during file-upload attempts, letting a crafted Content-Type,…KEVEPSS 100%analysed9.8CVE-2013-2251Apache Struts 2 OGNL injection enables remote code executionApache Struts 2.0.0 through 2.3.15 fails to properly validate request parameters, allowing crafted action:, redirect:, or redirectAction: prefixes to…KEVEPSS 100%analysed9.8CVE-2012-0391Apache Struts ExceptionDelegator OGNL injection enables remote code executionApache Struts before 2.2.3.1 evaluates parameter values as OGNL expressions in the ExceptionDelegator component during exception handling for mismatc…KEVEPSS 76%analysed8.1CVE-2018-11776Apache Struts namespace handling flaw enables remote code executionApache Struts 2.3 through 2.3.34 and 2.5 through 2.5.16 can execute remote code when alwaysSelectFullNamespace is enabled and results or url tags are…KEVEPSS 100%analysed8.1CVE-2017-9805Apache Struts REST Plugin XStream deserialization RCEThe REST Plugin in Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 uses an XStreamHandler with an XStream instance for deseri…KEVEPSS 99%analysed7.5CVE-2006-1547Apache Struts 1 ActionForm multipart parameter denial of serviceApache Struts before 1.2.9 with BeanUtils 1.7 exposes the public getMultipartRequestHandler method through ActionForm parameter binding. A remote att…KEVEPSS 55%analysed10.0CVE-2013-4316Apache struts improper access control vulnerabilityApache Struts 2.0.0 through 2.3.15.1 enables Dynamic Method Invocation by default, which has unknown impact and attack vectors.EPSS 8.4%

Source: NIST National Vulnerability Database (record CVE-2017-9791), CISA KEV, FIRST EPSS (scores of 2026-09-22). This page is refreshed as NVD updates the record.