Critical Server-Side Forgery Vulnerability in libxstream-java (CVE-2021-21342)

libxstream-java Updated 02 Oct 2025

Summary

23/03/2021
N/A
Yes i
Critical
9.1

CVE-2021-21342: XStream is a Java library to serialize objects to XML and back again. Affects libxstream-java across 4 version ranges.

< 1.4.15-2 < 3dd9cc610199802e4f13bd49b02a9f99adaba145 < 7153c74dd0e860d0ca3825cc5a23e976e0242b6e < a0d4141a00ba5de4afaee160836898b41eb28065

Fixed in 1.4.15-2. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

XStream is a widely used Java library that facilitates the serialization of objects to XML and vice versa. It is designed to simplify the process of converting complex Java objects into a format that can be easily stored or transmitted. However, the library has a known vulnerability that can be exploited if proper security measures are not implemented. This vulnerability allows attackers to manipulate the input stream during the unmarshalling process, potentially leading to unauthorized actions on the server.

Vulnerability Detail

In XStream versions prior to 1.4.16, there exists a vulnerability during the unmarshalling process where an attacker can inject or replace objects in the processed input stream. This manipulation can lead to server-side forgery requests, allowing the attacker to perform actions on behalf of the server without proper authorization. The vulnerability arises from the way XStream handles type information, which can be exploited if the security framework is not configured correctly. Users who do not implement a whitelist of allowed types are particularly at risk.

How To Fix

Minimum fixed version

1.4.15-2

This is the first release that contains the fix.

sudo apt-get install --only-upgrade libxstream-java

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If upgrading is not immediately feasible, a temporary workaround is to ensure that the security framework is configured to use a strict whitelist of allowed types. This can help mitigate the risk until a proper upgrade can be performed. Example of a strict whitelist configuration:

XStream xstream = new XStream();
// Define a strict whitelist
xstream.allowTypes(new Class[] {AllowedClass1.class, AllowedClass2.class});

Conclusion

CVE-2021-21342 represents a significant security risk for applications using the XStream library. It is essential for developers to upgrade to version 1.4.16 or later and to implement a strict security framework configuration to protect against potential exploitation. Regular monitoring for vulnerabilities using tools like Vulert can also help maintain application security.

See every vulnerability recorded for libxstream-java →

Share this vulnerability

FAQ

CVE-2021-21342 is a critical vulnerability in the XStream library that allows attackers to manipulate the unmarshalling process, potentially leading to server-side forgery requests.

XStream versions prior to 1.4.16 are affected by this vulnerability.

You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability without requiring any signup.

The CVSS score of CVE-2021-21342 is 9.1, indicating a critical level of severity.

If an immediate upgrade is not possible, configure XStream's security framework to use a strict whitelist of allowed types as a temporary workaround.

Related vulnerabilities

Recent vulnerabilities recorded for libxstream-java.

How To Fix

Minimum fixed version

1.4.15-2

This is the first release that contains the fix.

sudo apt-get install --only-upgrade libxstream-java

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback