CVE-2017-9805
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.
- CVSS
- 8.1Highscored by CISA
- Exploited in the wild
- Yes, in CISA KEV since 3 Nov 2021CISA deadline for US federal agencies: 3 May 2022public exploit code
- EPSS
- 99.4%chance of exploitation in the next 30 daystop 0.1% of scored CVEsFIRST score of 11 Nov 2026
- Fix
- Patch availablesee the advisories in the references
- Published
- 15 Sept 2017analysed here 12 Nov 2026
Do first. Apply updates per vendor instructions. (CISA's required action for this KEV entry)
Summary
Triage
The summary, impact and action text on this page are written by our AI analysis pipeline, or taken from the NVD description when a CVE was imported from NVD. They are not the vendor's wording: check them against the sources. A longer AI executive summary and technical analysis are generated for signed-in accounts on the Max plan.
Affected products
| Product | Affected versions | Vendor says fixed in |
|---|---|---|
| Apache Software Foundation Apache Struts | Apache Struts before 2.3.34 and 2.5.x before 2.5.13Vendor says fixed in: not stated |
As published in the CVE Program record. A version outside these ranges is not a statement that it is unaffected — vendors sometimes understate a range, and distribution-backported builds carry upstream numbers that do not reflect what was patched into them.
Products named in our analysis
- apache:struts
- cisco:digital_media_manager
- cisco:hosted_collaboration_solution
- cisco:media_experience_engine
- cisco:network_performance_analysis
- cisco:video_distribution_suite_for_internet_streaming
- netapp:oncommand_balance
Fix and mitigation
WAF and other mitigations
Can a WAF block it? Partly. Azure WAF and Google Cloud Armor publish WAF rules written for this CVE. Such rules block the known exploit requests and buy time, but attackers can change the request to get past them, so they do not replace the patch.
Azure WAF · 1 rule
- 944110 · Critical - 5
Google Cloud Armor · 3 rules
Also consider: patch · enable the vendor rule in block mode · allow-list classes
Based on WAF vendor rules published for this CVE. We check Cloudflare, AWS, Google Cloud Armor and Azure; for Akamai, Imperva, Fastly, F5, ask your vendor.
Remediation steps (AI-written)
Step-by-step remediation is generated for accounts on the Max plan, for CVEs that match a technology in their stack. Add this technology to your stack to see the fix checklist.
Exploitation evidence
- CISA KEV catalog
- Listed since 3 Nov 2021.
- CISA due date
- 3 May 2022, the remediation deadline for US federal agencies
- CISA required action
- Apply updates per vendor instructions.
- Public exploit code
- Yes: 1 on Exploit-DB · 1 Metasploit module · 20 GitHub proofs of concept · 1 Nuclei template
- CISA SSVC
- exploitation active, automatable no, technical impact totalAssessed by CISA 6 Feb 2025 (SSVC 2.0.3). Exploitation is none, poc (public proof of concept) or active.
Exploit-DB
- Apache Struts 2.5 < 2.5.12 - REST Plugin XStream Remote Code Executionremote, 6 Sept 2017
Metasploit
- exploit/multi/http/struts2_rest_xstreamexploit, rank excellent
Nuclei
- Apache Struts2 S2-052 - Remote Code Executiondetection template, high
GitHub proofs of concept
- mazen160/struts-pwn_CVE-2017-9805247 stars
- luc10/struts-rce-cve-2017-980560 stars
- chrisjd20/cve-2017-9805.py21 stars
- 0x00-0x00/-CVE-2017-980515 stars
and 16 more repositories
Listed so you can judge urgency, not as a recommendation to run anything. GitHub “proofs of concept” are unvetted: some are fake or carry malware. Exploit-DB marks the entries its staff verified.
Timeline
- 6 Sept 2017First public exploit or proof of concept
- 15 Sept 2017Published10 days later
- 3 Nov 2021Added to CISA KEV (exploited in the wild)1,509 days (about 4 years) later
- 3 May 2022CISA remediation due date (US federal agencies)181 days (about 6 months) later
- 6 Feb 2025CISA SSVC assessment: exploitation active1,011 days (about 3 years) later
- 21 Oct 2025CVE record last updated257 days (about 9 months) later
- 12 Nov 2026Analysed by vulneraibility.com387 days (about 1 year) later
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
| Metric | Value | What it means |
|---|---|---|
| Attack vector | NetworkReachable over the internet or any routable network. | Reachable over the internet or any routable network. |
| Attack complexity | HighNeeds specific conditions, a race or a particular configuration. | Needs specific conditions, a race or a particular configuration. |
| Privileges required | NoneThe attacker needs no prior access. | The attacker needs no prior access. |
| User interaction | NoneNo victim action needed. | No victim action needed. |
| Scope | UnchangedImpact stays within the vulnerable component. | Impact stays within the vulnerable component. |
| Confidentiality | HighTotal data disclosure possible. | Total data disclosure possible. |
| Integrity | HighComplete modification possible. | Complete modification possible. |
| Availability | HighFull outage possible. | Full outage possible. |
Common questions
Is CVE-2017-9805 being exploited?
Yes. CVE-2017-9805 appears in CISA's Known Exploited Vulnerabilities catalog, which means exploitation in the wild has been confirmed and reported. Treat it as active rather than theoretical, and patch it ahead of higher-scoring vulnerabilities that carry no exploitation evidence.
How severe is CVE-2017-9805?
CVE-2017-9805 is rated High with a CVSS score of 8.1. Severity describes how bad exploitation would be, not how likely it is: pair it with exploitation evidence before deciding what to patch first.
Is there a patch for CVE-2017-9805?
Yes. A fix has been recorded for CVE-2017-9805. The vendor advisory is the authority on the exact fixed version — apply it from there rather than from a summary.
What does CVE-2017-9805 affect?
CVE-2017-9805 affects apache:struts, cisco:digital_media_manager, cisco:hosted_collaboration_solution, cisco:media_experience_engine, and 3 further products or versions. Confirm the exact affected versions against the vendor advisory before deciding you are exposed.
Exploitation status reflects CISA's KEV catalog as we last synced it. Check the catalog directly.
References
13 references in the CVE record, grouped by the tags the record gives them.
Advisories (2)
- tools.cisco.com /security/center/content/CiscoSecurityAdvisory/cisco-sa-20170907-struts2
- kb.cert.org /vuls/id/112992
Exploits (1)
- exploit-db.com /exploits/42627/
Other links (10)
- oracle.com /technetwork/security-advisory/alert-cve-2017-9805-3889403.html
- struts.apache.org /docs/s2-052.html
- securitytracker.com /id/1039263
- securityfocus.com /bid/100609
- bugzilla.redhat.com /show_bug.cgi?id=1488482
- blogs.apache.org /foundation/entry/apache-struts-statement-on-equifax
Show 4 more
- lgtm.com /blog/apache_struts_CVE-2017-9805
- cwiki.apache.org /confluence/display/WW/S2-052
- security.netapp.com /advisory/ntap-20170907-0001/
- cisa.gov /known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9805
Where the data on this page comes from
- CVE List (CVE.org): description, affected versions, references; CVE Terms of Use
- NVD: CVSS and CPE data
- CISA KEV catalog: exploitation, date added, due date
- CISA Vulnrichment (ADP): SSVC decision points
- FIRST EPSS: exploit probability and percentile
- Exploit-DB: published exploits
- Metasploit Framework: exploit and scanner modules
- Nuclei templates: detection templates
- PoC-in-GitHub: GitHub repositories that claim a proof of concept
Summary, impact and triage tags: written by our AI analysis pipeline from the sources above. Check them against the sources.
Similar CVEs
Get CVEs like this by email. Join the free digest: the CVEs we flag as major, all CVSS 8.0 or higher, in up to three emails a day (sent at 05:00, 11:00 and 15:00 UTC). Matching alerts to the products you run needs an account, and accounts are invite-only during the beta.