CVE-2017-9805

Struts REST Plugin XStream RCE: stopped at runtime

Waratek RASP’s secure runtime rules stop this class of attack out of the box - no application change, no vendor patch, no downtime.

Published September 15, 2017 · Updated June 30, 2026

Blocked by secure rule HIGH CVSS 8.1 v3.1 Actively exploited

The vulnerability

Remote code execution via unfiltered XStream deserialization

The Struts REST Plugin deserializes XML payloads using an XStreamHandler backed by XStream, without any type filtering. An attacker can submit a crafted XML payload to the REST endpoint to achieve remote code execution.

Affected softwareApache Struts 2 (REST Plugin)
Affected versions2.1.1 through 2.3.33, and 2.5 through 2.5.12
WeaknessUnsafe deserialization (CWE-502)
Published2017-09-15
SeverityHIGH · CVSS 8.1

Running an affected version? We can help.

Waratek RASP shields the vulnerable code in production - the exploit is blocked at runtime with no library upgrade, no redeploy, and no downtime. We can have you covered fast.

Talk to us about protection

How Waratek RASP stops it

Blocked at runtime by Waratek RASP

Waratek RASP applies a secure runtime rule that covers this whole class of attack out of the box - the exploit is stopped inside the JVM before it ever reaches a dangerous sink.

Runtime, not perimeter

Waratek RASP acts inside the JVM at the exact call that turns input into code, so obfuscated and encoded payloads are caught where a WAF misses them.

No code changes

Protection is applied as a rule at runtime. No source edits, no recompilation, no library upgrade, and no application restart required.

Zero false positives

Rules target the specific unsafe behaviour of the exploit, so legitimate traffic keeps flowing while the attack is blocked and logged.

Flip one toggle in the Waratek Portal. The protection deploys to every attached application, with no restart.

Common questions

Struts REST Plugin XStream RCE FAQ

Is Struts REST Plugin XStream RCE (CVE-2017-9805) exploitable?

CVE-2017-9805 carries a CVSS 8.1/10 (HIGH) rating and affects Apache Struts 2 (REST Plugin) 2.1.1 through 2.3.33, and 2.5 through 2.5.12. The Struts REST Plugin deserializes XML payloads using an XStreamHandler backed by XStream, without any type filtering. An attacker can submit a crafted XML payload to the REST endpoint to achieve remote code execution. It is listed in CISA's Known Exploited Vulnerabilities catalog.

How does Waratek mitigate Struts REST Plugin XStream RCE (CVE-2017-9805)?

Waratek RASP blocks exploitation of Struts REST Plugin XStream RCE (CVE-2017-9805) inside the JVM at runtime, with no application code changes, no vendor patch and no restart.

How quickly was Struts REST Plugin XStream RCE (CVE-2017-9805) exploited after disclosure?

Exploit code for CVE-2017-9805 was already circulating publicly on September 6, 2017, before the vulnerability was even formally published in the NVD. Attackers had a head start before most defenders had a CVE record to react to.

Protect your apps in production

Get protected against Struts REST Plugin XStream RCE - without code changes or redeploying

Book a call and we’ll show you how Waratek RASP shields your running applications against CVE-2017-9805 and attacks like it, and get you covered in production.