{"id":"CVE-2017-9805","published":"2017-09-15T19:29:00Z","modified":"2026-06-17T01:28:57Z","title":"Apache Struts Deserialization of Untrusted Data Vulnerability","vendor":"Apache","product":"Struts","tier":"core","eol":null,"description":{"text":"The 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 instance of XStream for deserialization without any type filtering, which can lead to Remote Code Execution when deserializing XML payloads.","provenance":"source","from":"NVD"},"summary":{"text":"A deserialization flaw in the REST Plugin of Apache Struts 2.1.1 through 2.3.x before 2.3.34 and 2.5.x before 2.5.13 stems from an XStreamHandler that deserializes XML without any type filtering. An attacker who can send crafted XML payloads to an affected REST endpoint can achieve remote code execution, with the attack complexity noted as high and no authentication or user interaction required.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-23T07:10:38Z"},"cvss":{"score":8.1,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","provenance":"source","from":"NVD"},"epss":{"score":0.99396,"percentile":0.9994,"date":"2026-10-30","provenance":"source"},"kev":{"dateAdded":"2021-11-03","dueDate":"2022-05-03","ransomware":false,"requiredAction":"Apply updates per vendor instructions.","notes":"https://nvd.nist.gov/vuln/detail/CVE-2017-9805","provenance":"source"},"vulncheckKev":{"dateAdded":"2021-11-03","exploitedFirstSeen":"2021-11-03","ransomware":true,"evidence":[{"url":"https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json","date":"2021-11-03"},{"url":"https://www.ivanti.com/resources/v/doc/pr-survey-report/ransomware-quarterly-indexreport_q2-q3","date":"2022-10-21"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2023-12-05&host_type=src&vulnerability=cve-2017-9805","date":"2023-12-05"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2023-12-06&host_type=src&vulnerability=cve-2017-9805","date":"2023-12-06"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2023-12-07&host_type=src&vulnerability=cve-2017-9805","date":"2023-12-07"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2023-12-22&host_type=src&vulnerability=cve-2017-9805","date":"2023-12-22"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2023-12-25&host_type=src&vulnerability=cve-2017-9805","date":"2023-12-25"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2023-12-28&host_type=src&vulnerability=cve-2017-9805","date":"2023-12-28"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2024-01-04&host_type=src&vulnerability=cve-2017-9805","date":"2024-01-04"},{"url":"https://dashboard.shadowserver.org/statistics/honeypot/vulnerability/map/?day=2024-01-05&host_type=src&vulnerability=cve-2017-9805","date":"2024-01-05"}],"evidenceTotal":723,"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-502","name":"Deserialization of Untrusted Data"}],"references":[{"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/100609","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"http://www.securitytracker.com/id/1039263","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"https://blogs.apache.org/foundation/entry/apache-struts-statement-on-equifax","tags":["Vendor Advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1488482","tags":["Issue Tracking","Third Party Advisory","VDB Entry"]},{"url":"https://cwiki.apache.org/confluence/display/WW/S2-052","tags":["Mitigation","Vendor Advisory"]},{"url":"https://lgtm.com/blog/apache_struts_CVE-2017-9805","tags":["Broken Link"]},{"url":"https://security.netapp.com/advisory/ntap-20170907-0001/","tags":["Third Party Advisory"]},{"url":"https://struts.apache.org/docs/s2-052.html","tags":["Mitigation","Vendor Advisory"]},{"url":"https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20170907-struts2","tags":["Third Party Advisory"]},{"url":"https://www.exploit-db.com/exploits/42627/","tags":["Exploit","Third Party Advisory","VDB Entry"]},{"url":"https://www.kb.cert.org/vuls/id/112992","tags":["Third Party Advisory","US Government Resource"]},{"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/100609","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"http://www.securitytracker.com/id/1039263","tags":["Broken Link","Third Party Advisory","VDB Entry"]},{"url":"https://blogs.apache.org/foundation/entry/apache-struts-statement-on-equifax","tags":["Vendor Advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1488482","tags":["Issue Tracking","Third Party Advisory","VDB Entry"]},{"url":"https://cwiki.apache.org/confluence/display/WW/S2-052","tags":["Mitigation","Vendor Advisory"]},{"url":"https://lgtm.com/blog/apache_struts_CVE-2017-9805","tags":["Broken Link"]},{"url":"https://security.netapp.com/advisory/ntap-20170907-0001/","tags":["Third Party Advisory"]},{"url":"https://struts.apache.org/docs/s2-052.html","tags":["Mitigation","Vendor Advisory"]},{"url":"https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20170907-struts2","tags":["Third Party Advisory"]},{"url":"https://www.exploit-db.com/exploits/42627/","tags":["Exploit","Third Party Advisory","VDB Entry"]},{"url":"https://www.kb.cert.org/vuls/id/112992","tags":["Third Party Advisory","US Government Resource"]},{"url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9805","tags":["US Government Resource"]}],"techniques":[{"id":"T1190","name":"Exploit Public-Facing Application","tactics":["initial-access"],"provenance":"source","basis":"ctid-kev","bases":["ctid-kev"],"basisDetail":"CTID Mappings Explorer KEV 07/28/2025 (ATT&CK 16.1); capability: Deserialization of Untrusted Data","mappingType":"exploitation_technique","evidence":[],"comment":"CVE-2017-9805 is a deserialization vulnerability in the Apache Struts REST Plugin that could allow an attacker to execute arbitrary commands remotely on the affected systems by sending a specially crafted web request to the application.","confidence":"high"},{"id":"T1059","name":"Command and Scripting Interpreter","tactics":["execution"],"provenance":"source","basis":"ctid-kev","bases":["ctid-kev"],"basisDetail":"CTID Mappings Explorer KEV 07/28/2025 (ATT&CK 16.1); capability: Deserialization of Untrusted Data","mappingType":"primary_impact","evidence":[],"comment":"CVE-2017-9805 is a deserialization vulnerability in the Apache Struts REST Plugin that could allow an attacker to execute arbitrary commands remotely on the affected systems by sending a specially crafted web request to the application.","confidence":"high"}],"reports":[],"affected":[{"ecosystem":"Maven","package":"org.apache.struts:struts2-rest-plugin","vulnerableRanges":[">=2.1.1, <2.3.34",">=2.5.0, <2.5.13"],"patched":["2.3.34","2.5.13"],"from":["GHSA-gg9m-fj3v-r58c"],"provenance":"source"}],"advisories":[{"id":"GHSA-gg9m-fj3v-r58c","url":"https://github.com/advisories/GHSA-gg9m-fj3v-r58c","severity":"HIGH","ecosystem":"Maven","package":"org.apache.struts:struts2-rest-plugin","vulnerableRanges":[">=2.1.1, <2.3.34"],"patched":["2.3.34"],"provenance":"source","from":"GHSA"},{"id":"GHSA-gg9m-fj3v-r58c","url":"https://github.com/advisories/GHSA-gg9m-fj3v-r58c","severity":"HIGH","ecosystem":"Maven","package":"org.apache.struts:struts2-rest-plugin","vulnerableRanges":[">=2.5.0, <2.5.13"],"patched":["2.5.13"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2018-0602","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2018-0602","exploited":true,"exploitedSince":"2021-11-03","provenance":"source"},"exploits":[{"id":42627,"url":"https://www.exploit-db.com/exploits/42627","title":"Apache Struts 2.5 < 2.5.12 - REST Plugin XStream Remote Code Execution","type":"remote","platform":"linux","date":"2017-09-06","verified":false,"provenance":"source"}],"exploitSources":{"exploitdb":{"count":1,"earliest":"2017-09-06"},"pocGithub":{"count":18,"skipped":2,"earliest":"2017-09-06","earliestUrl":"https://github.com/luc10/struts-rce-cve-2017-9805","repos":[{"name":"mazen160/struts-pwn_CVE-2017-9805","url":"https://github.com/mazen160/struts-pwn_CVE-2017-9805","stars":247,"created":"2017-09-09"},{"name":"luc10/struts-rce-cve-2017-9805","url":"https://github.com/luc10/struts-rce-cve-2017-9805","stars":60,"created":"2017-09-06"},{"name":"chrisjd20/cve-2017-9805.py","url":"https://github.com/chrisjd20/cve-2017-9805.py","stars":21,"created":"2017-12-04"},{"name":"0x00-0x00/-CVE-2017-9805","url":"https://github.com/0x00-0x00/-CVE-2017-9805","stars":15,"created":"2017-11-24"},{"name":"Lone-Ranger/apache-struts-pwn_CVE-2017-9805","url":"https://github.com/Lone-Ranger/apache-struts-pwn_CVE-2017-9805","stars":5,"created":"2017-09-10"}]},"metasploit":[{"name":"Apache Struts 2 REST Plugin XStream RCE","module":"exploit/multi/http/struts2_rest_xstream","type":"exploit","disclosureDate":"2017-09-05","url":"https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/http/struts2_rest_xstream.rb"}],"nuclei":[{"id":"CVE-2017-9805","name":"Apache Struts2 S2-052 - Remote Code Execution","severity":"high","path":"http/cves/2017/CVE-2017-9805.yaml","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2017/CVE-2017-9805.yaml"}],"first":{"date":"2017-09-05","source":"Metasploit","url":"https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/http/struts2_rest_xstream.rb"},"provenance":"source"},"exploitRefs":["https://www.exploit-db.com/exploits/42627/","https://www.exploit-db.com/exploits/42627"],"flow":[{"stage":"exploitation","techniques":["T1190"],"provenance":"source"},{"stage":"primary","techniques":["T1059"],"provenance":"source"}],"timeline":[{"date":"2017-09-05","kind":"exploit-public","label":"First public exploit: Metasploit; later: Exploit-DB 2017-09-06, PoC-in-GitHub 2017-09-06","url":"https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/http/struts2_rest_xstream.rb","provenance":"source"},{"date":"2017-09-15","kind":"published","label":"Published (NVD)","url":"https://nvd.nist.gov/vuln/detail/CVE-2017-9805","provenance":"source"},{"date":"2021-11-03","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json","provenance":"source"},{"date":"2021-11-03","kind":"kev","label":"Added to CISA KEV","url":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","provenance":"source"},{"date":"2021-11-03","kind":"euvd-exploited","label":"ENISA EUVD: exploited","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2018-0602","provenance":"source"}],"speed":{"daysToPublicExploit":null,"firstExploitFrom":"Metasploit","daysToKev":1510},"priority":{"score":78.7,"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 1823 days ago"},{"name":"Known ransomware use","points":10.0,"detail":"CISA KEV and VulnCheck KEV: Known"},{"name":"EPSS percentile","points":19.99,"detail":"percentile 0.9994"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"1 NVD reference tagged Exploit; 1 Exploit-DB entry; 1 advisory exploit reference; 18 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":5.67,"detail":"base score 8.1"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"packageHistory":[{"cve":"CVE-2013-4316","published":"2013-09-30","fixed":"2.3.15.2","kev":false},{"cve":"CVE-2016-4438","published":"2016-07-04","fixed":"2.3.29","kev":false,"link":{"from":"CVE-2016-4438","to":"CVE-2017-9805","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Maven:org.apache.struts:struts2-rest-plugin","fromFixed":"2.3.29","toFixed":"2.3.34","daysApart":438}]}},{"cve":"CVE-2017-9793","published":"2017-09-20","fixed":"2.5.13","kev":false},{"cve":"CVE-2017-9805","published":"2017-09-15","fixed":"2.5.13","kev":true},{"cve":"CVE-2017-15707","published":"2017-12-01","fixed":"2.5.16","kev":false},{"cve":"CVE-2018-1327","published":"2018-03-27","fixed":"2.5.16","kev":false}],"package":"Maven:org.apache.struts:struts2-rest-plugin"}}