{"id":"CVE-2017-9791","published":"2017-07-10T16:29:00Z","modified":"2026-06-17T01:28:55Z","title":"Apache Struts 1 Improper Input Validation Vulnerability","vendor":"Apache","product":"Struts 1","tier":"core","eol":null,"description":{"text":"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.","provenance":"source","from":"NVD"},"summary":{"text":"The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x, part of the Apache Struts 1 product line, contains an improper input validation flaw. An attacker with remote network access, requiring no authentication or user interaction, can supply a malicious field value in a raw message passed to ActionMessage, potentially achieving remote code execution.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-23T07:09:42Z"},"cvss":{"score":9.8,"severity":"CRITICAL","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","provenance":"source","from":"NVD"},"epss":{"score":0.98908,"percentile":0.99927,"date":"2026-10-30","provenance":"source"},"kev":{"dateAdded":"2022-02-10","dueDate":"2022-08-10","ransomware":false,"requiredAction":"Apply updates per vendor instructions.","notes":"https://nvd.nist.gov/vuln/detail/CVE-2017-9791","provenance":"source"},"vulncheckKev":{"dateAdded":"2020-06-24","exploitedFirstSeen":"2020-06-24","ransomware":false,"evidence":[{"url":"https://unit42.paloaltonetworks.com/lucifer-new-cryptojacking-and-ddos-hybrid-malware/","date":"2020-06-24"},{"url":"https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json","date":"2022-02-10"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-18&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-18"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-20&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-20"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-21&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-21"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-22&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-22"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-23&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-23"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-24&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-24"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-25&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-25"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2026-09-26&host_type=src&vulnerability=cve-2017-9791","date":"2026-09-26"}],"evidenceTotal":26,"provenance":"source"},"exploited":true,"otx":{"pulseCount":50,"pulses":[{"name":"Actively_Exploited_Kev | Oct 29, 2026","url":"https://otx.alienvault.com/pulse/6ae20c1db17e7057ae7d9ad1","created":"2026-10-28"},{"name":"Actively_Exploited_Kev | Oct 28, 2026","url":"https://otx.alienvault.com/pulse/6ae0ba7e0e2a97ff7b218819","created":"2026-10-27"},{"name":"Actively_Exploited_Kev | Oct 27, 2026","url":"https://otx.alienvault.com/pulse/6adf68b85c3e852f3c111d18","created":"2026-10-26"},{"name":"Actively_Exploited_Kev | Oct 24, 2026","url":"https://otx.alienvault.com/pulse/6adb740e397c3ad4799aa4cd","created":"2026-10-23"},{"name":"Actively_Exploited_Kev | Oct 23, 2026","url":"https://otx.alienvault.com/pulse/6ada236fcfba2dfa730ea482","created":"2026-10-22"},{"name":"Actively_Exploited_Kev | Oct 22, 2026","url":"https://otx.alienvault.com/pulse/6ad8d33a077cbb5cab524d80","created":"2026-10-21"},{"name":"Actively_Exploited_Kev | Oct 21, 2026","url":"https://otx.alienvault.com/pulse/6ad78130c4d1ac2be83a8b6d","created":"2026-10-20"},{"name":"Actively_Exploited_Kev | Oct 20, 2026","url":"https://otx.alienvault.com/pulse/6ad62f63c24a405a3423cc13","created":"2026-10-19"},{"name":"Actively_Exploited_Kev | Oct 19, 2026","url":"https://otx.alienvault.com/pulse/6ad4dda174e5797d0bd238b7","created":"2026-10-18"},{"name":"Actively_Exploited_Kev | Oct 18, 2026","url":"https://otx.alienvault.com/pulse/6ad38c22e1848f8189d1c121","created":"2026-10-17"}],"provenance":"machine"},"cwes":[{"id":"CWE-20","name":"Improper Input Validation"}],"references":[{"url":"http://struts.apache.org/docs/s2-048.html","tags":["Mitigation","Vendor Advisory"]},{"url":"http://www.oracle.com/technetwork/security-advisory/alert-cve-2017-9805-3889403.html","tags":["Patch","Third Party Advisory"]},{"url":"http://www.securityfocus.com/bid/99484","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"http://www.securitytracker.com/id/1038838","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"https://security.netapp.com/advisory/ntap-20180706-0002/","tags":["Third Party Advisory"]},{"url":"https://www.exploit-db.com/exploits/42324/","tags":["Third Party Advisory","VDB Entry"]},{"url":"https://www.exploit-db.com/exploits/44643/","tags":["Third Party Advisory","VDB Entry"]},{"url":"http://struts.apache.org/docs/s2-048.html","tags":["Mitigation","Vendor Advisory"]},{"url":"http://www.oracle.com/technetwork/security-advisory/alert-cve-2017-9805-3889403.html","tags":["Patch","Third Party Advisory"]},{"url":"http://www.securityfocus.com/bid/99484","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"http://www.securitytracker.com/id/1038838","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"https://security.netapp.com/advisory/ntap-20180706-0002/","tags":["Third Party Advisory"]},{"url":"https://www.exploit-db.com/exploits/42324/","tags":["Third Party Advisory","VDB Entry"]},{"url":"https://www.exploit-db.com/exploits/44643/","tags":["Third Party Advisory","VDB Entry"]},{"url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9791","tags":["US Government Resource"]}],"techniques":[{"id":"T1190","name":"Exploit Public-Facing Application","tactics":["initial-access"],"provenance":"ai","basis":"ai-mapping","bases":["ai-mapping"],"basisDetail":"claude-haiku-5-5: remote exploit of public-facing Struts app","mappingType":"exploitation_technique","evidence":[{"from":"description","quote":"might allow remote code execution via a malicious field value passed in a raw message","start":53,"end":138}],"model":"claude-haiku-5-5","confidence":"medium","confidenceNote":"AI-mapped from the description (quote-validated, not expert-reviewed)"},{"id":"T1059","name":"Command and Scripting Interpreter","tactics":["execution"],"provenance":"ai","basis":"ai-mapping","bases":["ai-mapping"],"basisDetail":"claude-haiku-5-5: RCE grants command execution on server","mappingType":"primary_impact","evidence":[{"from":"description","quote":"might allow remote code execution via a malicious field value","start":53,"end":114}],"model":"claude-haiku-5-5","confidence":"medium","confidenceNote":"AI-mapped from the description (quote-validated, not expert-reviewed)"}],"reports":[],"affected":[{"ecosystem":"Maven","package":"org.apache.struts:struts2-struts1-plugin","vulnerableRanges":["<=2.3.37"],"patched":[],"from":["GHSA-29rm-6752-gvwv"],"provenance":"source"}],"advisories":[{"id":"GHSA-29rm-6752-gvwv","url":"https://github.com/advisories/GHSA-29rm-6752-gvwv","severity":"CRITICAL","ecosystem":"Maven","package":"org.apache.struts:struts2-struts1-plugin","vulnerableRanges":["<=2.3.37"],"patched":[],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2022-1954","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2022-1954","exploited":true,"exploitedSince":"2022-02-10","provenance":"source"},"exploits":[{"id":42324,"url":"https://www.exploit-db.com/exploits/42324","title":"Apache Struts 2.3.x Showcase - Remote Code Execution","type":"webapps","platform":"multiple","date":"2017-07-07","verified":true,"provenance":"source"},{"id":44643,"url":"https://www.exploit-db.com/exploits/44643","title":"Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit)","type":"remote","platform":"multiple","date":"2018-05-17","verified":true,"provenance":"source"},{"id":44643,"url":"https://www.exploit-db.com/exploits/44643","title":"Apache Struts 2 - Struts 1 Plugin Showcase OGNL Code Execution (Metasploit)","type":"remote","platform":"multiple","date":"2018-05-17","verified":true,"provenance":"source"}],"exploitSources":{"exploitdb":{"count":3,"earliest":"2017-07-07"},"pocGithub":{"count":3,"skipped":0,"earliest":"2017-07-07","earliestUrl":"https://github.com/IanSmith123/s2-048","repos":[{"name":"dragoneeg/Struts2-048","url":"https://github.com/dragoneeg/Struts2-048","stars":27,"created":"2017-07-07"},{"name":"IanSmith123/s2-048","url":"https://github.com/IanSmith123/s2-048","stars":2,"created":"2017-07-07"},{"name":"xfer0/CVE-2017-9791","url":"https://github.com/xfer0/CVE-2017-9791","stars":0,"created":"2017-09-23"}]},"metasploit":[{"name":"Apache Struts 2 Struts 1 Plugin Showcase OGNL Code Execution","module":"exploit/multi/http/struts2_code_exec_showcase","type":"exploit","disclosureDate":"2017-07-07","url":"https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/http/struts2_code_exec_showcase.rb"}],"nuclei":[{"id":"CVE-2017-9791","name":"Apache Struts2 S2-053 - Remote Code Execution","severity":"critical","path":"http/cves/2017/CVE-2017-9791.yaml","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2017/CVE-2017-9791.yaml"}],"first":{"date":"2017-07-07","source":"Exploit-DB","url":"https://www.exploit-db.com/exploits/42324"},"provenance":"source"},"exploitRefs":["https://www.exploit-db.com/exploits/42324/","https://www.exploit-db.com/exploits/44643/","https://www.exploit-db.com/exploits/42324","https://www.exploit-db.com/exploits/44643"],"flow":[{"stage":"exploitation","techniques":["T1190"],"provenance":"ai"},{"stage":"primary","techniques":["T1059"],"provenance":"ai"}],"timeline":[{"date":"2017-07-07","kind":"exploit-public","label":"First public exploit: Exploit-DB (EDB-42324); later: PoC-in-GitHub 2017-07-07, Metasploit 2017-07-07","url":"https://www.exploit-db.com/exploits/42324","provenance":"source"},{"date":"2017-07-10","kind":"published","label":"Published (NVD)","url":"https://nvd.nist.gov/vuln/detail/CVE-2017-9791","provenance":"source"},{"date":"2020-06-24","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://unit42.paloaltonetworks.com/lucifer-new-cryptojacking-and-ddos-hybrid-malware/","provenance":"source"},{"date":"2022-02-10","kind":"kev","label":"Added to CISA KEV","url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","provenance":"source"},{"date":"2022-02-10","kind":"euvd-exploited","label":"ENISA EUVD: exploited","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2022-1954","provenance":"source"}],"speed":{"daysToPublicExploit":null,"firstExploitFrom":"Exploit-DB","daysToKev":1676},"priority":{"score":69.8,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in CISA KEV and VulnCheck KEV"},{"name":"Recent KEV listing","points":0.0,"detail":"added 2320 days ago"},{"name":"Known ransomware use","points":0.0,"detail":"not known"},{"name":"EPSS percentile","points":19.99,"detail":"percentile 0.9993"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"3 Exploit-DB entries; 2 NVD exploit links; 2 advisory exploit references; 3 PoC-in-GitHub repos; 1 Metasploit module; 1 nuclei template"},{"name":"Mentioned in OTX pulses","points":3.0,"detail":"50 pulses"},{"name":"CVSS severity","points":6.86,"detail":"base score 9.8"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"familyId":"fam-class-apache-struts-cwe-20"}}