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.
Metrics
Affected Vendors & Products
References
History
Fri, 08 May 2026 23:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Ray Project
Ray Project ray |
|
| Vendors & Products |
Ray Project
Ray Project ray |
Fri, 08 May 2026 22:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Ray: Remote Code Execution via Parquet Arrow Extension Type Deserialization | |
| Weaknesses | CWE-502 CWE-94 |
|
| References |
| |
| Metrics |
cvssV4_0
|
Status: PUBLISHED
Assigner: GitHub_M
Published:
Updated: 2026-05-08T21:46:14.442Z
Reserved: 2026-04-20T16:14:19.007Z
Link: CVE-2026-41486
No data.
Status : Received
Published: 2026-05-08T22:16:29.903
Modified: 2026-05-08T22:16:29.903
Link: CVE-2026-41486
No data.
OpenCVE Enrichment
Updated: 2026-05-08T23:30:15Z