CVE-2023-47248:
PyArrow: Arbitrary code execution when loading a malicious data file
9.8
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.994%
CWE
Published
11/9/2023
Updated
10/21/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
pyarrow | pip | >= 0.14.0, < 14.0.1 | 14.0.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from PyArrow's PyExtensionType using pickle-based deserialization without proper safeguards. The commit f141709 explicitly disables PyExtensionType autoloading by default and deprecates it, replacing it with safer ExtensionType handling. The arrow_ext_deserialize method in PyExtensionType was directly responsible for unpickling untrusted data, while set_auto_load governed the dangerous default behavior. These functions are clearly implicated in the CWE-502 deserialization vulnerability as they allowed execution of arbitrary code via malicious payloads in Arrow/IPC/Parquet files.