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.arrowtensor, ray.data.arrowtensorv2, ray.data.arrowvariableshapedtensor) globally in PyArrow. When PyArrow reads a Parquet file containing one of these extension types, it calls arrowextdeserialize 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.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41486.json",
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-502",
"CWE-94"
]
}[
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"89352426533390526306400048473442562869",
"149893185171684037173978752784630430440",
"44716456038091470909460406987887309391"
]
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Line",
"target": {
"file": "src/ray/core_worker/tests/task_manager_test.cc"
},
"id": "CVE-2026-41486-1da8ac6f",
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"152291613442518214913941930340978231063",
"235559590780955171918987803798633389235",
"15885339092108789021787133147444067839"
]
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Line",
"target": {
"file": "src/ray/common/ray_config_def.h"
},
"id": "CVE-2026-41486-4f18aa21",
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"198758771431606103182495938295389681778",
"63028895006080680067531525587224201349",
"87766133508859106114645854469648893778",
"37272624478264194843256233491380417903",
"110731609196691327413746682144545096671",
"155226453649788732596519546318232032435",
"133592465060740446061847189238187466743"
]
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Line",
"target": {
"file": "src/ray/core_worker/task_manager.h"
},
"id": "CVE-2026-41486-606c7597",
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"231614866152555909915319853350739806249",
"269764720163032367547957257951840129756",
"321405718273155449283046141059462075863",
"328204968120684783934632880607160672250",
"123922136334885125076407516650316827446",
"125028329158292234658945890388293955237",
"18543739986218424235321569001829939546",
"315689795263205751263871435171604718285",
"232064114306653163380901593932543358657",
"246018328412869292456317552142473652084",
"293772235433637886988325890800424340558",
"72523926209178563798902208772931011209"
]
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Line",
"target": {
"file": "src/ray/core_worker/task_manager.cc"
},
"id": "CVE-2026-41486-72b3f1e2",
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"289281450945726032448298080021553172366",
"54185709377407162113609756900665075399",
"309377755346502792770938141539172852926",
"65880712103124925939446926893273408380",
"3491554584826943630006433288987191377",
"95482668852684428317731068015552501048",
"262379263371488217602087086734836499583"
]
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Line",
"target": {
"file": "src/ray/util/exponential_backoff.cc"
},
"id": "CVE-2026-41486-7c8712d0",
"deprecated": false
},
{
"digest": {
"length": 230.0,
"function_hash": "256625625241010152897777957896282407369"
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Function",
"target": {
"function": "ExponentialBackoff::GetBackoffMs",
"file": "src/ray/util/exponential_backoff.cc"
},
"id": "CVE-2026-41486-7ed9f845",
"deprecated": false
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"298730909065096319364869494727424169016",
"301541128398313889044252268876269046200",
"30008596438343283761931096570112405868",
"242175218594659027716150684110115737425",
"309769317108814437736385231729486732895",
"278531911222355320187746760944737165138",
"228287529784775002280620781335491046199",
"102071637798532627240438396430130591718",
"333854271898302681293464129994784708175"
]
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Line",
"target": {
"file": "src/ray/util/tests/exponential_backoff_test.cc"
},
"id": "CVE-2026-41486-b653e51f",
"deprecated": false
},
{
"digest": {
"length": 3387.0,
"function_hash": "71236028819869196675642093549054137994"
},
"signature_version": "v1",
"source": "https://github.com/ray-project/ray/commit/58af3fc5cad7e74001b3f89bffd9052a9e7aa2bb",
"signature_type": "Function",
"target": {
"function": "TaskManager::RetryTaskIfPossible",
"file": "src/ray/core_worker/task_manager.cc"
},
"id": "CVE-2026-41486-cb90c490",
"deprecated": false
}
]
"2026-07-21T23:47:41Z"
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-41486.json"