<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 23:22:31 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-57516 — Ray &lt; 2.56.0 Unsafe Deserialization RCE via WebDataset Reader</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-57516</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Anyscale, Inc Ray&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Anyscale, Inc Ray&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-57516</guid>
    </item>
    <item>
      <title>GHSA-hhrp-gw25-jr43 — Ray: Arbitrary code execution via ray.data.read_webdataset default decoder: pickle.loads(value) and torch.load(weights_…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-hhrp-gw25-jr43</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: ray&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`ray.data.read_webdataset(paths=...)` is a `@PublicAPI(stability=&amp;#34;alpha&amp;#34;)`
reader for WebDataset-format TAR files. Its default `decoder=True` invokes
`_default_decoder` on every sample&amp;#39;s keys, which routes file extension to a
decoder by extension. Two of those branches deserialize attacker-controlled
bytes with no validation:&lt;/p&gt;
&lt;p&gt;- `.pickle` / `.pkl` -&amp;gt; `pickle.loads(value)`
- `.pt`     / `.pth` -&amp;gt; `torch.load(io.BytesIO(value), weights_only=False)`&lt;/p&gt;
&lt;p&gt;Both fire during a standard `ray.data.read_webdataset(...).take_all()` /
`.iter_batches()` call. No flags, no opt-in, no environment variable.
An attacker who can supply a TAR (via S3 share, HuggingFace Hub mirror,
email attachment, model-zoo, or any HTTP URL the user passes to
`read_webdataset`) achieves arbitrary code execution in the calling
Ray process at schema-sample time, before row data is consumed.&lt;/p&gt;
&lt;p&gt;This is the same class of bug as GHSA-mw35-8rx3-xf9r (Parquet Arrow
Extension Type cloudpickle deserialization, patched in 2.55.0): standard
data-loading API, attacker-controlled file format, deserialization gadget
invoked transparently. The 2.55.0 patch addressed
`tensor_extensions/arrow.py:_deserialize_with_fallback` and made cloudpickle
opt-in via `RAY_DATA_AUTOLOAD_CLOUDPICKLE_TENSOR_METADATA=1`. The
WebDataset path is a different code site and was not touched.&lt;/p&gt;
&lt;p&gt;## Vulnerable code (HEAD `a157d4d`)&lt;/p&gt;
&lt;p&gt;`python/ray/data/_internal/datasource/webdataset_datasource.py` lines
175-225, the `_default_decoder` function:&lt;/p&gt;
&lt;p&gt;``…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: ray&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`ray.data.read_webdataset(paths=...)` is a `@PublicAPI(stability=&amp;#34;alpha&amp;#34;)`
reader for WebDataset-format TAR files. Its default `decoder=True` invokes
`_default_decoder` on every sample&amp;#39;s keys, which routes file extension to a
decoder by extension. Two of those branches deserialize attacker-controlled
bytes with no validation:&lt;/p&gt;
&lt;p&gt;- `.pickle` / `.pkl` -&amp;gt; `pickle.loads(value)`
- `.pt`     / `.pth` -&amp;gt; `torch.load(io.BytesIO(value), weights_only=False)`&lt;/p&gt;
&lt;p&gt;Both fire during a standard `ray.data.read_webdataset(...).take_all()` /
`.iter_batches()` call. No flags, no opt-in, no environment variable.
An attacker who can supply a TAR (via S3 share, HuggingFace Hub mirror,
email attachment, model-zoo, or any HTTP URL the user passes to
`read_webdataset`) achieves arbitrary code execution in the calling
Ray process at schema-sample time, before row data is consumed.&lt;/p&gt;
&lt;p&gt;This is the same class of bug as GHSA-mw35-8rx3-xf9r (Parquet Arrow
Extension Type cloudpickle deserialization, patched in 2.55.0): standard
data-loading API, attacker-controlled file format, deserialization gadget
invoked transparently. The 2.55.0 patch addressed
`tensor_extensions/arrow.py:_deserialize_with_fallback` and made cloudpickle
opt-in via `RAY_DATA_AUTOLOAD_CLOUDPICKLE_TENSOR_METADATA=1`. The
WebDataset path is a different code site and was not touched.&lt;/p&gt;
&lt;p&gt;## Vulnerable code (HEAD `a157d4d`)&lt;/p&gt;
&lt;p&gt;`python/ray/data/_internal/datasource/webdataset_datasource.py` lines
175-225, the `_default_decoder` function:&lt;/p&gt;
&lt;p&gt;``…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-hhrp-gw25-jr43</guid>
    </item>
  </channel>
</rss>
