WaratekVRT Sign in

CVE-2017-9791 Apache Struts

Affected softwareApache Struts
Severity9.8 Critical CVSS 3.1 3 scores
WeaknessImproper input validation (CWE-20)
Published10 Jul 2017
Updated13 Nov 2026

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.

Exploitation status

Exploited

Confirmed real-world exploitation.

  • CISA KEV listed Confirmed exploitation in the wild. Added 2022-02-10 · remediation due 2022-08-10 · ransomware use: unknown
  • VulnCheck KEV listed Exploitation reported in the wild. 2 citations · honeypot sightings · 3 exploits · earliest 2020-06-24.
  • CISA Vulnrichment exploitation: active CISA records active exploitation. Automatable: yes, technical impact: total.
  • Indexed PoC 8 indexed Published artifacts you can open, in Exploit-DB, GitHub PoC, Metasploit, Nuclei; first seen 2017-07-07.
  • EPSS 99% chance in 30 days A model's forecast, not a report of exploitation. Higher than 99.9% of all scored CVEs.

VulnCheck KEV

Exploitation evidence from VulnCheck Known Exploited Vulnerabilities (VulnCheck KEV), used under VulnCheck's community terms. View CVE-2017-9791 in VulnCheck (free account).

EvidenceSourceDetailDate
Honeypot sighting Shadowserver honeypots Exploitation attempts seen on 37 days 2026-09-18 to 2026-11-12
Reported exploitation unit42.paloaltonetworks.com /lucifer-new-cryptojacking-and-ddos-hybrid-malware 2020-06-24
Reported exploitation cisa.gov /sites/default/files/feeds/known_exploited_vulnerabilities.json 2022-02-10
Exploit reference VulnCheck XDB 8b1dd6d0c703 Exploit type: initial-access 2017-07-07
Exploit reference VulnCheck XDB 2fe7d1498974 Exploit type: initial-access 2023-12-20
Exploit reference VulnCheck XDB bacc4a0c75f1 Exploit type: initial-access 2023-12-21

2 of these are GitHub repositories with fewer than 5 stars. They are listed for reference and don't count toward the exploitation status above.

IndexArtifactStarsFirst seen
GitHub PoC CVE-2017-9791 27 2017-07-07
GitHub PoC Apache struts struts 2 048, CVE-2017-9791. 2 2017-07-07
Exploit-DB Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit) 2018-05-17
Exploit-DB Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit) 2018-05-17
GitHub PoC Metasploit module for Apache Struts CVE-2017-9791 Remote Code Execution Vulnerability 2017-09-23
Exploit-DB Apache Struts 2.3.x Showcase - Remote Code Execution 2017-07-07
Metasploit Apache Struts 2 Struts 1 Plugin Showcase OGNL Code Execution (excellent rank)
Nuclei Apache Struts2 S2-053 - Remote Code Execution

Waratek protection

Protected by Waratek

Waratek has a rule that blocks attacks on this vulnerability.

Decided by A researcher's recorded decision for this specific CVE
Finding A researcher found this CVE protected by the ARMR Process rule.

Waratek research note

written 2026-11-13

Written by a Waratek engineer who reviewed this CVE. Their decision sets the status above, ahead of every automated rule except a withdrawal.

Comments

Rule Name: ARMR Process rule

Exploitation forks a process. Blocked by the Process rule in PROTECT mode.

Only stops attacks that start a program; an expression that reads files or data directly in Java is not stopped.

The Marshal rule does not apply: rce() arms only inside a deserialization boundary.

How to mitigate CVE-2017-9791

Apply the vendor's fix for Apache Struts. Until you can, Waratek RASP blocks exploitation with its process rule. It runs inside the Java application, with no code changes.

Waratek RASP Runtime protection for Java applications

CVSS

9.8 CRITICAL v3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 3 metrics

We show the highest score from the newest CVSS version. Scores from different versions can't be compared, and the first score listed is sometimes a 0.0 placeholder.

VersionScoreBandVectorAssignerType
CVSS 3.1 9.8 CRITICAL CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H NVD Primary published
CVSS 3.1 9.8 CRITICAL CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CISA-ADP Secondary
CVSS 2.0 7.5 none AV:N/AC:L/Au:N/C:P/I:P/A:P NVD Primary

Affected software and releases

Maven packages

Affected and fixed versions, from OSV.dev
PackageIntroducedFixedLast affected
org.apache.struts:struts2-struts1-plugin 0 none 2.3.37

Products and versions

2 products, 34 version entries
SourceVendorProductSchemeAffected versions
nvd apache struts generic 2.3.1 · 2.3.1.1 · 2.3.1.2 · 2.3.3 · 2.3.4 · 2.3.4.1 · 2.3.7 · 2.3.8 · 2.3.12 · 2.3.14 · 2.3.14.1 · 2.3.14.2 · 2.3.14.3 · 2.3.15 · 2.3.15.1 · 2.3.15.2 · 2.3.15.3 · 2.3.16 · 2.3.16.1 · 2.3.16.2 · 2.3.16.3 · 2.3.20 · 2.3.20.1 · 2.3.20.3 · 2.3.24 · 2.3.24.1 · 2.3.24.3 · 2.3.28 · 2.3.28.1 · 2.3.29 · 2.3.30 · 2.3.31 · 2.3.32
osv org.apache.struts struts2-struts1-plugin generic ≤ 2.3.37

References

URLTags
https://github.com/apache/struts/commit/ffe0e20edd9d5386f4410fddd970286a69373243 WEB
https://security.netapp.com/advisory/ntap-20180706-0002 WEB
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9791 WEB
https://www.exploit-db.com/exploits/42324 WEB
https://www.exploit-db.com/exploits/44643 WEB
http://struts.apache.org/docs/s2-048.html WEB
http://www.oracle.com/technetwork/security-advisory/alert-cve-2017-9805-3889403.html WEB
http://www.securityfocus.com/bid/99484 WEB
http://www.securitytracker.com/id/1038838 WEB
https://security.netapp.com/advisory/ntap-20180706-0002/ Third Party Advisory

Timeline

Published2017-07-10By the CVE Program.
VulnCheck KEV: earliest evidence2020-06-24Date of the oldest evidence of exploitation in VulnCheck KEV's record. VulnCheck does not publish the date it listed the CVE.
Added to CISA KEV2022-02-10Listed in CISA's Known Exploited Vulnerabilities catalog.
NVD record modified2026-06-17NVD's own last-modified date for this record.
VulnCheck KEV: latest evidence2026-11-12Date of the newest report, exploit reference or honeypot sighting in VulnCheck KEV's record.
Classification created2026-11-13First commit adding this CVE's research note.
Last VRT activity2026-11-13Most recent commit touching this CVE's classification, patch or rule file.