Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable data reader with no auth (PR:N) but a victim must ingest the malicious archive (UI:R); pickle deserialization yields full code execution, hence C/I/A:H and scope unchanged.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
Ray prior to 2.56.0 contains an unsafe deserialization vulnerability in the WebDataset reader that allows attackers to achieve remote code execution by supplying a malicious tar archive to the read_webdataset() function. The _default_decoder() function in webdataset_datasource.py unconditionally calls pickle.loads() on tar entries with .pkl/.pickle extensions and torch.load() with weights_only=False on .pt/.pth entries, executing arbitrary code inside Ray remote workers on every worker that processes the malicious archive.
AnalysisAI
Remote code execution in Ray (the distributed compute/ML framework) before version 2.56.0 lets attackers run arbitrary code by feeding a malicious tar archive to the WebDataset reader. The read_webdataset() datasource invokes pickle.loads() on .pkl/.pickle entries and torch.load() with weights_only=False on .pt/.pth entries with no validation, so code executes inside every Ray remote worker that processes the archive. No public exploit has been identified at time of analysis, but the fix is available in Ray 2.56.0 and the issue is documented in a GitHub Security Advisory (GHSA-hhrp-gw25-jr43) and a VulnCheck advisory.
Technical ContextAI
The root cause is CWE-502 (Deserialization of Untrusted Data). Ray Data's WebDataset integration reads sharded datasets packaged as tar archives, a common format in large-scale ML training pipelines. The vulnerable code path is _default_decoder() in webdataset_datasource.py, which dispatches decoding by file extension: entries ending in .pkl/.pickle are passed straight to Python's pickle.loads(), and .pt/.pth entries are loaded via PyTorch's torch.load() with weights_only=False. Both pickle and unrestricted torch.load reconstruct arbitrary Python objects and can execute code through __reduce__ during unpickling, so any attacker-controlled bytes in those entries become code execution. Because Ray distributes dataset reading across remote workers, the malicious payload runs on each worker node that touches the archive, amplifying impact across the cluster.
RemediationAI
Vendor-released patch: upgrade to Ray 2.56.0 or later, which contains the fixes from pull requests https://github.com/ray-project/ray/pull/63469 and https://github.com/ray-project/ray/pull/63470. If immediate upgrade is not possible, do not use read_webdataset() to ingest archives from untrusted or externally-controlled sources, and restrict WebDataset inputs to datasets you generate and store yourself; treat any third-party or user-uploaded tar shards as executable code. As a compensating control, avoid or strip .pkl/.pickle/.pt/.pth entries from incoming archives and source datasets only from trusted, integrity-verified storage - the trade-off is that legitimate pickled or PyTorch-serialized samples in those datasets will no longer load, which may break existing pipelines. Refer to the advisory at https://github.com/ray-project/ray/security/advisories/GHSA-hhrp-gw25-jr43 for authoritative guidance.
Ray is an AI compute engine. Rated critical severity (CVSS 9.4), this vulnerability is remotely exploitable, no authenti
A command injection existed in Ray's cpu_profile URL parameter allowing attackers to execute os commands on the system r
Anyscale Ray 2.6.3 and 2.8.0 allows /log_proxy SSRF. Rated critical severity (CVSS 9.1), this vulnerability is remotely
Local file disclosure in the Ray Dashboard (default TCP port 8265) of the Ray distributed-computing framework affects al
LFI in Ray's /static/ directory allows attackers to read any file on the server without authentication. Rated high sever
LFI in Ray's log API endpoint allows attackers to read any file on the server without authentication. Rated high severit
Ray dashboard versions 2.53.0 and below lack proper authentication on DELETE endpoints, allowing unauthenticated attacke
Same weakness CWE-502 – Deserialization of Untrusted Data
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41089
GHSA-hhrp-gw25-jr43