Patchfirst
CVE-2020-26217 Public exploit High · 8.0 EPSS 82.7%

Remote Code Execution in XStream

x-stream · xstream

Summary

The XStream Java serialization library, product xstream from vendor x-stream, contains an OS command injection flaw in versions before 1.4.14, where processing of crafted input can lead to arbitrary shell command execution. A remote attacker needs a deployment that relies on XStream's blocklist rather than its allowlist, and the exploit requires the attacker to get a victim to process the malicious input stream, with low privileges and some user interaction involved.

Official description · CVE.org

XStream before version 1.4.14 is vulnerable to Remote Code Execution.The vulnerability may allow a remote attacker to run arbitrary shell commands only by manipulating the processed input stream. Only users who rely on blocklists are affected. Anyone using XStream's Security Framework allowlist is not affected. The linked advisory provides code workarounds for users who cannot upgrade. The issue is fixed in version 1.4.14.

Breakdown
30.5 / 100
Exploited
Not confirmed
Reports
0
Tactics
0/15

Public exploit code (PoC-in-GitHub) appeared 22 days after disclosure. No confirmed exploitation is recorded.

  1. Disclosedday 0
  2. Public exploit codePoC-in-GitHub+22 days

See the family tree

A fix was bypassed or incomplete once over 8 years. The latest fix listed for xstream is 1.4.16.

Same bug familyLinked by evidence that a fix failed or the same code was patched again. Oldest first.

  1. CVE-2017-7957XStream through 1.4.9, when a certain denyTypes workaround is…29 Apr 2017
  2. relatedMedium

    Why these are linked:

    CVE-2013-7285Xstream API versions up to 1.4.6 and version 1.4.10, if the…15 May 2019
  3. regression ofHigh

    Why these are linked:

    • Stated in the CVE textIf the security framework has not been initialized, it may allow a remote attacker to run arbitrary shell commands when unmarshalling XML or any supported format. e.g. JSON. (regression of CVE-2013-7285)
    • Similar weakness in the same product (machine-matched)same package + description similarity
    CVE-2019-10173It was found that xstream API version 1.4.10 before 1.4.11…23 Jul 2019
  4. Next fix in the same packageLow

    Why these are linked:

    • Fixed one release later1.4.11 → 1.4.14-java7 (com.thoughtworks.xstream:xstream)
    This CVECVE-2020-26217Remote Code Execution in XStream16 Nov 2020
  5. same family
    CVE-2021-43859Denial of Service by injecting highly recursive collections or…1 Feb 2022
  6. relatedMedium

    Why these are linked:

    CVE-2024-47072XStream is vulnerable to a Denial of Service attack due to stack…7 Nov 2024

Fixes in xstreamMaven package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 1.4.10CVE-2017-795729 Apr 2017
  2. 1.4.11CVE-2013-728515 May 2019
  3. 1.4.11CVE-2019-1017323 Jul 2019
  4. 1.4.14-java7CVE-2020-2621716 Nov 2020
  5. 1.4.15CVE-2020-2625816 Dec 2020
  6. 1.4.15CVE-2020-2625916 Dec 2020
  7. 1.4.16CVE-2021-2134122 Mar 2021Latest listed

techniques

No techniques linked

No ATT&CK techniques are linked to this CVE yet. MITRE CTID has not mapped it, and no report passage in the corpus ties it to a technique.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: com.thoughtworks.xstream:xstream.

Mavencom.thoughtworks.xstream:xstreamGHSA-mw36-7c6c-q4q2

Upgrade to 1.4.18 or later

Fixes this CVE and 12 other known vulnerabilities in this package (CVE-2013-7285, CVE-2019-10173, +10).

Set the version to 1.4.18 or later in your pom.xml or build.gradle.

First fixed in 1.4.14-java7 for CVE-2020-26217.

Affected versions

If you runUpgrade to
All versions before 1.4.14-java71.4.18first fix for this CVE: 1.4.14-java7

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

References

15 links, grouped by NVD tag
↑ ↓ chooseEnter openEsc close