Skip to main content

Xorbits Xoscar EUVDEUVD-2026-100500

| CVE-2026-49950 CRITICAL
Deserialization of Untrusted Data (CWE-502)
2026-10-13 disclosure@vulncheck.com GHSA-5rfg-55mw-4h28
9.3
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed actor-pool TCP port
  2. Delivery
    Send crafted pickle payload
  3. Exploit
    cloudpickle.loads() deserializes before validation
  4. Execution
    __reduce__ gadget executes code
  5. Impact
    RCE as root on GPU node

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires network reachability to the Xoscar actor-pool TCP channel (the inter-process/inter-node communication port used by SocketChannel). No authentication, user interaction, or special feature flag is required - the flaw sits in the default message-receive path where SocketChannel.recv() passes raw bytes to cloudpickle.loads() prior to message-type validation, so any deployment running an actor pool on a reachable interface is exposed against default configurations of Xorbits Xoscar (0.1.0 through 0.11.2). Practical LIMITING factors: the actor-pool port must be reachable by the attacker (deployments that bind only to localhost or isolate the actor-pool network segment are not remotely exploitable), and impact severity depends on the privilege of the server process - the worst case (root) applies specifically to GPU-node deployments that run the process as root.

Impact

All available signals point to a genuine high-priority issue rather than a high-CVSS-but-low-real-risk case. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, VC:H/VI:H/VA:H, base 9.3) describes a remote, low-complexity, unauthenticated path to full compromise, and the mechanism (CWE-502 deserialization of attacker-controlled data via cloudpickle.loads() before any message-type validation) is a well-understood, reliable RCE primitive that typically does not require exotic conditions. The description's note that the server process 'commonly runs as root on GPU nodes' amplifies impact beyond the base score's unchanged scope, since successful exploitation often yields root on high-value ML infrastructure. Countervailing signals that LOWER practical urgency: this is NOT in CISA KEV (no confirmed active exploitation), no EPSS probability was provided, and no public proof-of-concept is referenced - only a VulnCheck advisory and the vendor source lines. The CVSS vector and the description are consistent (both support remote unauthenticated code execution), so there is no network-vs-local contradiction to flag. Net: treat as a serious, prioritize-the-patch vulnerability for anyone running Xoscar actor pools on reachable networks, while recognizing that exploitation is currently theoretical/advisory-driven rather than observed in the wild.

Exploit ScenarioDerived

An attacker with network reachability to an exposed Xoscar actor-pool TCP port sends a crafted serialized payload; SocketChannel.recv() hands the bytes to cloudpickle.loads() before validating the message type, triggering a malicious pickle __reduce__ gadget that runs attacker code. Because the actor-pool process frequently runs as root on GPU nodes, this yields root-level remote code execution. No public exploit is referenced, but the attack is low-complexity and unauthenticated.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Unauthenticated remote code execution in Xorbits Xoscar through 0.11.2 lets any attacker who can reach the actor-pool TCP channel run arbitrary code as the server process, because the receive path hands raw network bytes straight to cloudpickle.loads() before the message type is validated. The CVSS 4.0 vector (AV:N/PR:N/UI:N, 9.3) confirms the bug is remotely reachable and requires no credentials or user interaction, so any deployment exposing an actor pool on a routable interface is exposed at default configuration; impact is worst where the process runs as root, typical of GPU-node deployments. No public exploit code or confirmed active exploitation was identified at time of analysis, and the exposure is bounded by network reachability - installations that bind the actor-pool port to localhost or keep it on an isolated segment are not remotely exploitable.

RemediationAI

No vendor-released patch identified at time of analysis, so remediation must be compensating-control based until an upstream fix lands. The most effective immediate step is to remove network exposure of the actor-pool TCP channel: bind Xoscar's actor-pool/communication port to a loopback or private interface and firewall it so only trusted cluster nodes can connect - the trade-off is that multi-host or multi-node clusters must be reconfigured to route over a trusted, segmented network rather than an untrusted one. Where remote scheduling across untrusted networks is unavoidable, place the actor pool behind a mutually authenticated tunnel (for example WireGuard, mTLS or an SSH tunnel) so unauthenticated peers cannot reach SocketChannel.recv() at all. Run the Xoscar server process as an unprivileged user instead of root, especially on GPU nodes where the default deployment is root, which caps the blast radius of successful exploitation but does not prevent code execution. Patching pickle-based messaging is non-trivial, so treating any reachable actor-pool port as a hostile boundary is the practical posture; monitor https://github.com/xorbitsai/xoscar and the VulnCheck advisory at https://www.vulncheck.com/advisories/xorbits-xoscar-unauthenticated-deserialization-rce-via-actor-pool for a fixed release, and note that the referenced source files (socket.py and serialization/core.pyx) are the locations any upstream fix must harden by validating message type before deserialization.

Affected VersionsENISA

xoscar 0.1.0 ≤0.11.2

Affected Packages

euvd xoscar no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Xorbits Xoscar is a distributed actor framework in which worker, supervisor and actor-pool processes exchange serialized messages over TCP; its communication layer uses cloudpickle, an extended Python pickle implementation, to serialize objects between nodes. In the affected code, SocketChannel.recv() reads a frame from the socket and passes the raw payload into the deserialization routine in serialization/core.pyx (referenced lines socket.py#L99-L104 and core.pyx#L260) before the receiver has validated the message type. Because Python's pickle protocol invokes an object's __reduce__ callable during unpickling, an attacker-controlled payload can name an arbitrary callable and arguments, giving code execution as soon as loads() runs - i.e. before any type check or authentication gate. This is the classic CWE-502 (Deserialization of Untrusted Data) root-cause class: trust is placed in bytes arriving from an unauthenticated network channel. The CVSS 4.0 vector marks AV:N, AC:L, AT:N, PR:N and UI:N with high confidentiality, integrity and availability impact on the vulnerable system, matching the underlying design flaw rather than a configuration error.

Know when Python gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vulncheck) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.8 CRITICAL

Remote, unauthenticated, low-complexity deserialization yields full code execution (PR:N, AC:L); scope unchanged as code runs within the vulnerable process, with full C/I/A loss.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Xorbits Xoscar through 0.11.2 contains an unauthenticated deserialization vulnerability that allows remote attackers to execute arbitrary code by sending crafted data over the actor-pool TCP channel. Attackers can exploit SocketChannel.recv() passing unvalidated data to cloudpickle.loads(), which triggers pickle __reduce__ gadget execution before message type validation, achieving remote code execution as the server process which commonly runs as root on GPU nodes.

Executive ViewAI

Why It Matters

Xorbits Xoscar, the distributed actor framework used by Xorbits data-processing deployments through version 0.11.2, exposes an unauthenticated remote code execution path that lets anyone able to reach its actor-pool TCP port execute arbitrary commands as the service process. Because the flaw requires no credentials or user interaction and is active at default configuration, any cluster with that port on a routable interface is exposed - most critically GPU-node deployments, where the process commonly runs as root and could yield full control of expensive compute infrastructure and any data or credentials resident on it. The good news is that exposure is strictly gated by network reachability, so organizations that have kept the actor-pool port on loopback or an isolated segment face little immediate risk.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: bind the actor-pool TCP channel to localhost or an isolated, non-routable segment; restrict the port with host firewall or security-group rules to trusted cluster nodes only; run Xoscar under a non-root, least-privilege service account (critical for GPU nodes); segment and monitor actor-pool traffic for unexpected external connections; and consider disabling the actor pool where it is not operationally required until a fixed version is available.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Low
niche Python distributed-actor library for ML, limited production footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy