| Component | Ray |
| Severity | high (CVSS 8.8) |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Published (NVD) | 2026-05-08 |
| Last modified | 2026-06-17 |
| Affected versions | >= 2.54.0, < 2.55.0 read from the advisory text: no structured source gives these versions yet |
| Fixed in | 2.55.0 |
| Weakness | CWE-94CWE-502 |
| CISA KEV | not listed |
NVD description
Ray is an AI compute engine. From version 2.54.0 to before version 2.55.0, Ray Data registers custom Arrow extension types (ray.data.arrow_tensor, ray.data.arrow_tensor_v2, ray.data.arrow_variable_shaped_tensor) globally in PyArrow. When PyArrow reads a Parquet file containing one of these extension types, it calls __arrow_ext_deserialize__ on the field's metadata bytes. Ray's implementation passes these bytes directly to cloudpickle.loads(), achieving arbitrary code execution during schema parsing, before any row data is read. This issue has been patched in version 2.55.0.
What to do
- Upgrade Ray to
2.55.0or later. - Do not expose the component's API or UI to the internet without authentication in front of it.