Skip to content
OpenAdvisories
High · 8.9 CVE-2026-41486 EUVD-2026-28828GHSA-mw35-8rx3-xf9rPYSEC-2026-2272PYSEC-2026-2296

Ray: Remote Code Execution via Parquet Arrow Extension Type Deserialization

Published May 8, 2026 · Updated May 12, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
ray-project ray >= 2.54.0, < 2.55.0 —

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI ray >= 2.49.0, < 2.55.0 2.55.0 GHSA-mw35-8rx3-xf9r
PyPI ray <= 2.54.0 — PYSEC-2026-2272
PyPI ve-ray <= 2.54.0 — PYSEC-2026-2296

References