Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
☕
☕ Maven
CISA KEV · ACTIVELY EXPLOITED
CRITICAL severity

CVE-2017-9791 — struts2-struts1-plugin

CRITICALFix: apache/struts@ffe0e20

CVE-2017-9791 is a critical-severity (CVSS 9.8) Improper Input Validation vulnerability in org.apache.struts:struts2-struts1-plugin. It is in CISA's Known Exploited Vulnerabilities catalog (added 2022-02-10) — treat it as actively exploited and patch now. No vendor fix is recorded yet; mitigation options are listed below.

Code execution in Apache Struts 1 plugin

Also known asGHSA-29rm-6752-gvwv
Published
Updated
Affected
1 pkg
Patched
See advisory
Exploits
9 known
Exploitation data as of Oct 23, 2026 · OSV.dev, NVD, CISA KEV, FIRST.org (EPSS)

Exploitation Status

Actively exploited in the wild

  • Confirmed by CISA's Known Exploited Vulnerabilities catalog on 2022-02-10. Federal agencies were required to remediate by 2022-08-10.
  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.
  • A successful exploit gives an attacker total control of the affected component, not partial access.

Exploitation and automatability from CISA (KEV catalog and SSVC triage) for CVE-2017-9791.

EPSS Exploitation Probability

via FIRST.org ↗
98.9%probability of exploitation in next 30 days
Very High Risk0.00%
Lower risk than most CVEs100th percentile — riskier than 100% of all scored CVEsHighest risk
92.7%95.1%97.6%100.0%94.2%98.9%Apr 26Aug 26Oct 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

CVE-2017-9791 by exploitation likelihood (EPSS) against impact (CVSS). In the shaded patch-first corner (EPSS 50%+, CVSS 7.0+).

Where this sits among everything scored

Of 394,803 CVEs with a current EPSS score, this one falls in the ≥ 90% band (highlighted). Counts from FIRST.org, log-scaled.

Real-World Exposure

1 pkg affected
☕org.apache.struts:struts2-struts1-plugin

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.

Description

The Struts 1 plugin used with 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.

Affected Packages

1 total
EcosystemPackageVulnerable rangeFix
☕Mavenorg.apache.struts:struts2-struts1-pluginall versionsNo fix

Affected Products

1 product · 33 configurations
Application
strutsapache
33 versions
2.3.12.3.1.12.3.1.22.3.32.3.42.3.4.12.3.72.3.82.3.122.3.142.3.14.12.3.14.2
Exploits & PoCs
9

Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.

EDB-44643remotemultiple✓ Verified

Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit)

by Metasploit · May 17, 2018

EDB-42324webappsmultiple✓ Verified

Apache Struts 2.3.x Showcase - Remote Code Execution

by Vex Woo · Jul 7, 2017

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.apache.struts:struts2-struts1-plugin, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Remediation status

    No patched version of org.apache.struts:struts2-struts1-plugin has shipped for CVE-2017-9791 yet. Where your build allows, override or pin the dependency away from the vulnerable range, and apply any maintainer-recommended mitigation.

  3. Mitigate without a patch

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

How to detect CVE-2017-9791

A community-maintained Nuclei template exists for this CVE. You can scan for it directly:

nuclei -id cve-2017-9791 -u https://target
Template
Apache Struts2 S2-053 - Remote Code Execution
Severity
critical
Impact
Remote code execution
Remediation
Apply the latest security patches or upgrade to a non-vulnerable version of Apache Struts2.

Template by ProjectDiscovery nuclei-templates (pikpikcu), MIT licensed. View the full template. Scan only systems you are authorised to test.

Frequently Asked Questions

The Struts 1 plugin used with 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.
O3 Security · Impact-Aware SCA

Is CVE-2017-9791 in your dependencies?

Find it across Maven, including transitive dependencies.

CVE-2017-9791: struts2-struts1-plugin RCE (KEV)