Arbitrary Code Execution in PyArrow Deserialization

pyarrow Updated 02 Oct 2025

Summary

20/11/2023
Yes i
Critical
9.8

CVE-2023-47248: Deserialization of untrusted data in IPC and Parquet readers in PyArrow versions 0.14.0 to 14.0.0 allows arbitrary code execution. Affects pyarrow versions >= 0.14.0, < 14.0.1. Fixed in 14.0.1. How to fix ↓

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored Devnack Penetration testing for web, API and mobile Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

PyArrow is a Python library that provides a Pythonic API for interacting with Apache Arrow, a columnar in-memory data format. It allows users to read and write Arrow IPC, Feather, and Parquet data. PyArrow versions 0.14.0 to 14.0.0 are affected by a vulnerability that allows arbitrary code execution when deserializing untrusted data in IPC and Parquet readers.

Vulnerability Detail

The vulnerability arises when an application reads Arrow IPC, Feather, or Parquet data from untrusted sources, such as user-supplied input files. This can lead to the execution of arbitrary code, posing a significant security risk. The issue was identified in PyArrow versions 0.14.0 to 14.0.0.

How To Fix

Minimum fixed version

14.0.1

This is the first release that contains the fix.

pip install --upgrade "pyarrow==14.0.1"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

There is no known workaround for this vulnerability. It is crucial to update PyArrow to the fixed version to address the issue.

Conclusion

The arbitrary code execution vulnerability in PyArrow versions 0.14.0 to 14.0.0 poses a significant security risk. It is crucial to update PyArrow to version 14.0.1 or later to mitigate this vulnerability. For further support and assistance in vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for pyarrow →

Share this vulnerability

FAQ

PyArrow is a Python library that provides a Pythonic API for interacting with Apache Arrow, a columnar in-memory data format. It enables efficient data interchange between different systems and languages.

PyArrow versions 0.14.0 to 14.0.0 are affected by this vulnerability. It is recommended to upgrade to version 14.0.1 or later.

The vulnerability allows arbitrary code execution when deserializing untrusted data in IPC and Parquet readers. If an application reads Arrow IPC, Feather, or Parquet data from untrusted sources, it can be exploited to execute malicious code.

No, there are no known workarounds for this vulnerability. Updating PyArrow to the fixed version is the recommended solution.

Related vulnerabilities

Recent vulnerabilities recorded for pyarrow.

How To Fix

Minimum fixed version

14.0.1

This is the first release that contains the fix.

pip install --upgrade "pyarrow==14.0.1"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback