CVE-2017-9805

From Exploited flaws, HARD’s guide to the flaws being used in attacks · Checked
This article is about a flaw in Apache Struts. For every flaw being used in attacks, see Exploited flaws; for Apache’s, see Apache flaws being used in attacks.

CVE-2017-9805 is a security flaw in Apache Struts, a framework for building Java web applications. Attackers can run their own code on Apache Struts. The US Cybersecurity and Infrastructure Security Agency (CISA) added it to its catalog of flaws known to be used in attacks on 3 Nov 2021.[1]

Apache Struts is business software or equipment. Most families won’t have it, but attackers break into it to get inside companies, and from there to what those companies hold about their customers, patients and staff. Apache has published a fix or advice.

Description

CISA calls it a deserialization of untrusted data in Apache Struts. In its words: “Apache Struts REST Plugin 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.”[1]

The CVE record adds: “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.”[2]

The underlying weakness is deserialization of untrusted data (CWE-502), in MITRE’s list of common software weaknesses.

It scores 8.1 out of 10 on the Common Vulnerability Scoring System, which rates it high, scored by NVD using CVSS 3.1.[2]

Affected versions

NVD’s record doesn’t list version ranges for it; Apache’s advisory has them[3]. CISA names the product as Apache Struts.

Most families won’t have Apache Struts; it’s for whoever looks after IT at work.

Exploitation

CISA added it to its catalog of known exploited vulnerabilities on 3 Nov 2021, 1,510 days after it was made public. CISA lists a flaw only when it has reliable evidence of it being exploited, and gave US federal agencies until 3 May 2022 to fix it.[1]

FIRST’s Exploit Prediction Scoring System, which estimates how likely a flaw is to be used in attacks in the next 30 days from what it sees across the internet, puts it at 99%. That’s in the top 1% of the flaws it scores.[4]

CISA assesses it as not automatable: each attack takes some work.

CISA doesn’t say who was attacked, or how.

Fix

Apache has published a fix or advice.[3] CISA’s required action: “Apply updates per vendor instructions.”[1]

  1. Check whether you use it.Apache Struts is business software or equipment, so most families won’t have it. If you run a business, or work from home on company equipment, ask whoever looks after your IT.
  2. Send this page to your IT person.Ask them to confirm it’s fixed, or not in use. CISA gave US government agencies until 3 May 2022 to fix it.
  3. If it can’t be fixed, take it offline.CISA’s advice when there’s no fix is to stop using the product, or take it off the internet, until there is one.

You can’t fix someone else’s server, but you can watch for what follows a break-in like this: a breach notice, a password reset you didn’t ask for, or a scam message that knows things it shouldn’t. HARD watches for those for you and your family.

Timeline

DateEvent
The flaw is made public in the National Vulnerability Database, with a severity score of 8.1.[2]
CISA adds it to its catalog of flaws known to be used in attacks.[1]
CISA’s deadline for US government agencies to fix it.[1]
FIRST puts the odds of it being used in attacks in the next 30 days at 99%.[4]

See also

Other Apache Struts flaws

Other Apache flaws

  • CVE-2026-34486, Apache Tomcat: missing encryption of sensitive data ·
  • CVE-2026-34197, Apache ActiveMQ: improper input validation ·
  • CVE-2024-38475, Apache HTTP Server: improper escaping of output ·
  • CVE-2025-24813, Apache Tomcat: path equivalence ·
  • CVE-2024-45195, Apache OFBiz: forced browsing ·

Other deserialization of untrusted data flaws

  • CVE-2021-23758, Ajax.NET Professional: deserialization of untrusted data ·
  • CVE-2026-63077, JetBrains TeamCity: deserialization of untrusted data ·
  • CVE-2026-50522, Microsoft SharePoint: deserialization of untrusted data ·
  • CVE-2026-58644, Microsoft SharePoint: deserialization of untrusted data ·
  • CVE-2026-45659, Microsoft SharePoint Server: deserialization of untrusted data ·

Added the same day

  • CVE-2021-42258, BQE BillQuick Web Suite: SQL injection ·
  • CVE-2021-42013, Apache HTTP Server: path traversal ·
  • CVE-2021-41773, Apache HTTP Server: path traversal ·
  • CVE-2021-40539, Zoho ManageEngine: aDSelfService plus authentication bypass ·
  • CVE-2021-40444, Microsoft MSHTML: remote code execution ·

Every Apache flaw on CISA’s list · Everything added in November 2021

References

  1. ^ Cybersecurity and Infrastructure Security Agency. “Apache Struts Deserialization of Untrusted Data Vulnerability”. Known Exploited Vulnerabilities Catalog, added 3 Nov 2021.
  2. ^ National Institute of Standards and Technology. “CVE-2017-9805 Detail”. National Vulnerability Database, published 15 Sep 2017.
  3. ^ Apache. Advisories and fixes: blogs.apache.org, cwiki.apache.org, struts.apache.org.
  4. ^ FIRST. “Exploit Prediction Scoring System”. EPSS 0.994, percentile 99.9, 31 Oct 2026.
  5. CVE Program. “CVE-2017-9805”. The official CVE record.

This article is built from CISA’s catalog (version 2026.10.30), NVD’s record and FIRST’s scores, kept in HARD’s database and checked every morning. The plain English is HARD’s.