Description
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.
Published: 2026-07-01
Score: 8.6 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Ray’s WebDataset reader can ingest tar archives that contain .pkl, .pickle, .pt, or .pth files. The default decoder function calls pickle.loads() on .pkl/.pickle entries and torch.load() with weights_only=False on .pt/.pth entries without any validation. When an attacker crafts a malicious tar file and supplies it to read_webdataset(), the deserialization step executes arbitrary code inside each Ray worker that processes the archive. This unsafe deserialization flaw is classified as CWE‑502 and gives attackers remote code execution on all workers that ingest the malicious data.

Affected Systems

All installations of Ray from Anyscale, Inc. with a version earlier than 2.56.0 are vulnerable. The issue cluster the dataset ingestion.

Risk and Exploitability

The CVSS score of 8.6 indicates high severity because arbitrary code can run on any worker calling read_webdataset(). The EPSS score of less than 1% suggests a low probability of exploitation at present, although the flaw would be easy to exploit if a Ray cluster processes untrusted tar files. The vulnerability is not listed in CISA KEV, indicating no known widespread exploitation yet. The likely attack vector is a malicious tar archive sent to a component that invokes read_webdataset(), leading to Ray cluster.

Generated by OpenCVE AI on July 17, 2026 at 12:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Ray to version 2.56.0 or later, which removes the unsafe deserializationRestrict the use of read_webdataset() to trusted, pre‑validated tar archives and disallow uploads that contain .pkl, .pickle, .pt, or .pth files.
  • Implement a custom decoder that only accepts safe file types or that filters out deserialization of these extensions before processing.
  • Monitor Ray cluster logs.loads() or torch.load() during dataset ingestion and investigate any anomalies.

Generated by OpenCVE AI on July 17, 2026 at 12:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 14 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:anyscale:ray:*:*:*:*:*:*:*:*

Wed, 01 Jul 2026 23:15:00 +0000

Type Values Removed Values Added
First Time appeared Anyscale
Anyscale ray
Vendors & Products Anyscale
Anyscale ray

Wed, 01 Jul 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 01 Jul 2026 17:15:00 +0000

Type Values Removed Values Added
Description 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.
Title Ray < 2.56.0 Unsafe Deserialization RCE via WebDataset Reader
Weaknesses CWE-502
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.6, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-14T21:34:31.049Z

Reserved: 2026-06-24T15:58:58.537Z

Link: CVE-2026-57516

cve-icon Vulnrichment

Updated: 2026-07-01T17:52:54.836Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-17T12:30:05Z

Weaknesses
  • CWE-502

    Deserialization of Untrusted Data