# CVE-2017-9805: Apache Struts Deserialization of Untrusted Data Vulnerability - Exploited (CISA KEV): yes, added 2021-11-03 - Published: 2017-09-15 - CVSS: 8.1 HIGH (v3.1) - EPSS: 99.4% (100th percentile) - CWE: CWE-502 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. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | Before feed history | — | — | | AWS | Before feed history | — | — | | Microsoft Azure | Rule published | — | — | | Google Cloud | Rule published | — | — | | Fastly | Before feed history | — | — | | F5 | Before feed history | — | — | | Akamai | No public source | — | — | | OWASP CRS | Before feed history | — | — | ### Microsoft Azure - undated · listed · rule 944110 > Rule 944110: Critical - 5 · 1 · Remote Command Execution: Java process spawn (CVE-2017-9805) Source: https://learn.microsoft.com/en-us/azure/web-application-firewall/afds/waf-front-door-drs - undated · listed · rule 944110 > Rule 944110: Critical - 5 · 1 · Remote Command Execution: Java process spawn (CVE-2017-9805) Source: https://learn.microsoft.com/en-us/azure/web-application-firewall/ag/application-gateway-crs-rulegroups-rules ### Google Cloud - undated · listed · rule owasp-crs-v042200-id944110-java > Signature owasp-crs-v042200-id944110-java (sensitivity 1): Remote command execution: Java process spawn (CVE-2017-9805) Source: https://docs.cloud.google.com/armor/docs/waf-rules - undated · listed · rule owasp-crs-v030301-id944110-java > Signature owasp-crs-v030301-id944110-java (sensitivity 1): Remote command execution: Java process spawn (CVE-2017-9805) Source: https://docs.cloud.google.com/armor/docs/waf-rules ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: blocked (2 of 2 requests blocked), template CVE-2017-9805, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: blocked (2 of 2 requests blocked), template CVE-2017-9805, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2017-9805 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2017-9805