Wavense
VulnerabilitiesVendorsMy Stack
Wavense© 2026 Wavense. All rights reserved.Privacy PolicyTerms & Conditions
Vulnerabilities/CVE-2021-39144
Vulnerability dossier

CVE-2021-39144

XStream Remote Code Execution via Deserialization Vulnerability

VendororaclePublishedAug 23, 2021SourceNVDWeaknessCWE-94
Act now

Actively exploited in the wild. Patch or mitigate immediately — don't wait for a maintenance window.

⚙ WeaponizedMetasploit module availableopen ↗
Severity
High · 8.5
CVSS base score
Exploitation
In the wild
CISA KEV · Metasploit
Predicted risk
98% model
EPSS forecast — overtaken by confirmed exploitation
Exposure
Remote (auth)
Remotely exploitable, but needs an account
01

What's the risk?

An attacker with a basic user account, remotely over the network, with no user interaction, can fully compromise the system — steal data, tamper with it and take it offline.

XStream is a simple library to serialize objects to XML and back again. In affected versions this vulnerability may allow a remote attacker has sufficient rights to execute commands of the host only by manipulating the processed input stream. No user is affected, who followed the recommendation to setup XStream's security framework with a whitelist limited to the minimal required types. XStream 1.4.18 uses no longer a blacklist by default, since it cannot be secured for general purpose.

How it's exploitedMITRE ATT&CK · 2 observed in the wild
Initial Access
T1190Exploit Public-Facing Applicationobserved
Execution
T1059Command and Scripting InterpreterT1203Exploitation for Client Executionobserved

Techniques marked “observed” are corroborated by threat intelligence; the rest are inferred from the weakness type (CWE) and attack vector.

02

Who's exploiting it?

Corroborated threat activity referencing this CVE — with source and confidence, not inference.

Confirmed exploited in the wild.
CISA KEV · catalogued Mar 10, 2023
Observed techniques MITRE-analysed · CTID Mappings Explorer
T1190Exploit Public-Facing ApplicationobservedT1203Exploitation for Client Executionobserved

These techniques were analysed against this CVE's real-world exploitation — the matching entries in the ATT&CK chain above are marked “observed”.

03

Are we affected?

36
  • Affecteddebian · debian_linux9.0
  • Affecteddebian · debian_linux11.0
  • Affecteddebian · debian_linux10.0
  • Affectedfedoraproject · fedora34
  • Affectedfedoraproject · fedora33
  • Affectedfedoraproject · fedora35
  • Affectednetapp · snapmanagerall versions
  • Affectednetapp · snapmanagerall versions
  • Affectedoracle · business_activity_monitoring12.2.1.4.0
  • Affectedoracle · commerce_guided_search11.3.2
  • Affectedoracle · communications_billing_and_revenue_management_elastic_charging_engine12.0
  • Affectedoracle · communications_billing_and_revenue_management_elastic_charging_engine11.3
  • Affectedoracle · communications_cloud_native_core_automated_test_suite1.9.0
  • Affectedoracle · communications_cloud_native_core_binding_support_function1.10.0
  • Affectedoracle · communications_cloud_native_core_policy1.14.0
  • Affectedoracle · communications_unified_inventory_management7.4.1
  • Affectedoracle · communications_unified_inventory_management7.3.4
  • Affectedoracle · communications_unified_inventory_management7.3.5
  • Affectedoracle · communications_unified_inventory_management7.4.0
  • Affectedoracle · communications_unified_inventory_management7.4.2
  • Affectedoracle · retail_xstore_point_of_service19.0.2
  • Affectedoracle · retail_xstore_point_of_service16.0.6
  • Affectedoracle · retail_xstore_point_of_service17.0.4
  • Affectedoracle · retail_xstore_point_of_service18.0.3
  • Affectedoracle · retail_xstore_point_of_service20.0.1
  • Affectedoracle · utilities_framework4.4.0.3.0
  • Affectedoracle · utilities_framework4.2.0.2.0
  • Affectedoracle · utilities_framework4.2.0.3.0
  • Affectedoracle · utilities_framework4.3.0.1.0
  • Affectedoracle · utilities_framework4.3.0.6.0
  • Affectedoracle · utilities_framework4.4.0.0.0
  • Affectedoracle · utilities_framework4.4.0.2.0
  • Affectedoracle · utilities_testing_accelerator6.0.0.1.1
  • Affectedoracle · webcenter_portal12.2.1.4.0
  • Affectedoracle · webcenter_portal12.2.1.3.0
  • Affectedxstream · xstreamall versions
04

What to do

Generated by Wavense from the CVE record — an immediate mitigation and the permanent fix.

  1. !

    Mitigate now

    Immediately implement XStream's security framework by configuring a strict whitelist of allowed types, permitting only the absolute minimum required for application functionality. Employ network segmentation to restrict access to systems utilizing XStream and ensure robust input validation is in place for all XML data processing. Monitor logs for unusual process execution or outbound connections originating from XStream-enabled applications.

  2. ✓

    Permanent fix

    Upgrade XStream to version 1.4.18 or higher to address this deserialization vulnerability, as these versions implement a secure whitelist-by-default approach. Ensure that all applications using XStream are updated to this patched version to permanently eliminate the risk of remote code execution. Prior versions that do not enforce a strict type whitelist are susceptible to this flaw.

Technical details— weakness, CVSS vector & calculator, related CVEs

Business impact

A remote attacker with sufficient rights can execute arbitrary commands on the host by manipulating the XML input stream processed by XStream. This allows for full system compromise, data exfiltration, or further lateral movement within the network. The business impact includes severe data breaches, service disruption, significant reputational damage, and potential regulatory fines.

Weakness

3
CWE-94Common Weakness Enumeration · MITRE definitionCWE-502Common Weakness Enumeration · MITRE definitionCWE-306Common Weakness Enumeration · MITRE definition

CVSS 3.1 details

CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
0.0
/ 10.0 base
High severity
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
Exploitability metrics
Attack VectorAV
Remotely exploitable across a network
Attack ComplexityAC
Depends on conditions beyond attacker control
Privileges RequiredPR
Basic user privileges
User InteractionUI
No user participation needed
Impact metrics
ScopeS
Impact extends to other components
ConfidentialityC
Total loss of confidentiality
IntegrityI
Total loss of integrity
AvailabilityA
Total loss of availability

Related vulnerabilities

Other CVEs affecting debian linux

NVD
10.0Critical
CVE-2025-32433KEV⚙ WeaponizedExploit likely

Erlang/OTP is a set of libraries for the Erlang programming language. Prior to versions OTP-27.3.3, OTP-26.2.5.11, and OTP-25.3.2.20, a SSH server may allow an attacker to perform unauthenticated remote code execution (RCE). By exploiting a flaw in SSH protocol message handling, a malicious actor could gain unauthorized access to affected systems and execute arbitrary commands without valid credentials. This issue is patched in versions OTP-27.3.3, OTP-26.2.5.11, and OTP-25.3.2.20. A temporary workaround involves disabling the SSH server or to prevent access via firewall rules.

ciscoCWE-306Missing AuthenticationNetworkLow effortNo authNo interactionCIA
2025-04-16
NVD
10.0Critical
CVE-2025-24201KEV

An out-of-bounds write issue was addressed with improved checks to prevent unauthorized actions. This issue is fixed in Safari 18.3.1, iOS 15.8.4 and iPadOS 15.8.4, iOS 16.7.11 and iPadOS 16.7.11, iOS 18.3.2 and iPadOS 18.3.2, iPadOS 17.7.6, macOS Sequoia 15.3.2, visionOS 2.3.2, watchOS 11.4. Maliciously crafted web content may be able to break out of Web Content sandbox. This is a supplementary fix for an attack that was blocked in iOS 17.2. (Apple is aware of a report that this issue may have been exploited in an extremely sophisticated attack against specific targeted individuals on versions of iOS before iOS 17.2.).

appleCWE-787Out-of-bounds WriteNetworkLow effortNo authNo interactionCIA
2025-03-11
NVD
10.0Critical
CVE-2023-46604KEV⚙ WeaponizedExploit likely

The Java OpenWire protocol marshaller is vulnerable to Remote Code Execution. This vulnerability may allow a remote attacker with network access to either a Java-based OpenWire broker or client to run arbitrary shell commands by manipulating serialized class types in the OpenWire protocol to cause either the client or the broker (respectively) to instantiate any class on the classpath. Users are recommended to upgrade both brokers and clients to version 5.15.16, 5.16.7, 5.17.6, or 5.18.3 which fixes this issue.

apacheCWE-502Deserialization of Untrusted DataNetworkLow effortNo authNo interactionCIA
2023-10-27
NVD
10.0Critical
CVE-2022-22947KEV⚙ WeaponizedExploit likely

In spring cloud gateway versions prior to 3.1.1+ and 3.0.7+ , applications are vulnerable to a code injection attack when the Gateway Actuator endpoint is enabled, exposed and unsecured. A remote attacker could make a maliciously crafted request that could allow arbitrary remote execution on the remote host.

oracleCWE-94Code InjectionNetworkLow effortNo authNo interactionCIA
2022-03-03
NVD
10.0Critical
CVE-2015-3306KEV⚙ WeaponizedExploit likely

The mod_copy module in ProFTPD 1.3.5 allows remote attackers to read and write to arbitrary files via the site cpfr and site cpto commands.

fedoraprojectCWE-284Improper Access ControlNetworkLow effortNo authNo interactionCIA
2015-05-18
NVD
9.9Critical
CVE-2025-49113KEV⚙ WeaponizedExploit likely

Roundcube Webmail before 1.5.10 and 1.6.x before 1.6.11 allows remote code execution by authenticated users because the _from parameter in a URL is not validated in program/actions/settings/upload.php, leading to PHP Object Deserialization.

roundcubeCWE-502Deserialization of Untrusted DataNetworkLow effortLow privNo interactionCIA
2025-06-02
NVD
9.8Critical
CVE-2026-24061KEV⚙ WeaponizedExploit likely

telnetd in GNU Inetutils through 2.7 allows remote authentication bypass via a "-f root" value for the USER environment variable.

gnuCWE-88Argument InjectionNetworkLow effortNo authNo interactionCIA
2026-01-21
NVD
9.8Critical
CVE-2025-39682KEV

In the Linux kernel, the following vulnerability has been resolved: tls: fix handling of zero-length records on the rx_list Each recvmsg() call must process either - only contiguous DATA records (any number of them) - one non-DATA record If the next record has different type than what has already been processed we break out of the main processing loop. If the record has already been decrypted (which may be the case for TLS 1.3 where we don't know type until decryption) we queue the pending record to the rx_list. Next recvmsg() will pick it up from there. Queuing the skb to rx_list after zero-copy decrypt is not possible, since in that case we decrypted directly to the user space buffer, and we don't have an skb to queue (darg.skb points to the ciphertext skb for access to metadata like length). Only data records are allowed zero-copy, and we break the processing loop after each non-data record. So we should never zero-copy and then find out that the record type has changed. The corner case we missed is when the initial record comes from rx_list, and it's zero length.

linuxCWE-754Improper Check for Unusual ConditionsNetworkLow effortNo authNo interactionCIA
2025-09-05
0.0
/ 10.0 base
High severity
Key facts
CVE ID
CVE-2021-39144
Published
Aug 23, 2021
Last modified
Oct 24, 2025
CVSS
8.5 (v3.1)
EPSS
98.12%
In CISA KEV
Yes
Confidence
100/100
Weakness
CWE-94
Timeline
  1. Aug 23, 2021Published to NVDNVD
  2. Oct 24, 2025Record last modifiedNVD
  3. Aug 22, 2026AI analysis generatedWavense
View on NVD