Ray: Remote Code Execution via Parquet Arrow Extension Type Deserialization
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| ray-project | ray | affected |
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Ray Project | Ray |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-mw35-8rx3-xf9r | Ray: Remote Code Execution via Parquet Arrow Extension Type Deserialization |
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.473% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Anyscale
Anyscale ray |
|
| CPEs | cpe:2.3:a:anyscale:ray:2.54.0:*:*:*:*:*:*:* | |
| Vendors & Products |
Anyscale
Anyscale ray |
|
| Metrics |
cvssV3_1
|
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Ray Project
Ray Project ray |
|
| Vendors & Products |
Ray Project
Ray Project ray |
| 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
|