CVE-2019-12410: Memory Array Data Uninitialized in Apache Arrow

pyarrow Updated 02 Oct 2025

Summary

08/11/2019
Yes i
High
7.5

CVE-2019-12410: While investigating UBSAN errors in https://github.com/apache/arrow/pull/5365 it was discovered Apache Arrow versions 0.12.0 to 0.14.1, left memory Array data uninitialized when reading RLE null data from parquet. Affects pyarrow versions >= 0.12.0, < 0.15.0. Fixed in 0.15.0. 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

Apache Arrow is an open-source software development platform that provides a columnar in-memory analytics layer for big data processing. It offers a set of libraries and tools for efficient data interchange and processing across various programming languages. The vulnerability identified as CVE-2019-12410 affects Apache Arrow versions 0.12.0 to 0.14.1, impacting the C++, Python, Ruby, and R implementations. This vulnerability specifically involves uninitialized memory in Array data when reading RLE null data from Parquet. If the uninitialized memory is transmitted over the wire or persisted in streaming IPC and file formats, it could potentially be shared and exploited.

Vulnerability Detail

The vulnerability in Apache Arrow versions 0.12.0 to 0.14.1 arises from the uninitialized memory in Array data when processing RLE null data from Parquet. This issue affects the C++, Python, Ruby, and R implementations. If the uninitialized memory is transmitted over the wire or stored in streaming IPC and file formats, it can be accessed and potentially exploited by malicious actors. The impact of this vulnerability could range from information disclosure to remote code execution, depending on how the uninitialized memory is utilized. It is crucial to address this vulnerability to ensure the integrity and security of data processed using Apache Arrow.

How To Fix

Minimum fixed version

0.15.0

This is the first release that contains the fix.

pip install --upgrade "pyarrow==0.15.0"

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

Workaround

There is no specific workaround mentioned for this vulnerability. However, users can mitigate the risk by avoiding the transmission of uninitialized memory over the wire or storing it in streaming IPC and file formats. It is crucial to update to the fixed version of Apache Arrow as soon as possible to eliminate the vulnerability entirely.

Conclusion

The vulnerability identified as CVE-2019-12410 in Apache Arrow versions 0.12.0 to 0.14.1 poses a risk of uninitialized memory in Array data when processing RLE null data from Parquet. This vulnerability affects the C++, Python, Ruby, and R implementations and can lead to information disclosure or remote code execution. It is crucial to update to the fixed version of Apache Arrow (0.15.0 or later) and ensure all dependencies are up to date. For further assistance and support in vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for pyarrow →

Share this vulnerability

FAQ

Apache Arrow is an open-source software development platform that provides a columnar in-memory analytics layer for big data processing. It offers efficient data interchange and processing across multiple programming languages.

The vulnerability affects Apache Arrow versions 0.12.0 to 0.14.1.

The vulnerability impacts the C++, Python, Ruby, and R implementations of Apache Arrow.

The uninitialized memory in Array data can be accessed and potentially exploited if transmitted over the wire or stored in streaming IPC and file formats. The impact could range from information disclosure to remote code execution.

To fix this vulnerability, it is recommended to upgrade to Apache Arrow version 0.15.0 or later. Ensure that all dependencies are also updated accordingly.

Related vulnerabilities

Recent vulnerabilities recorded for pyarrow.

How To Fix

Minimum fixed version

0.15.0

This is the first release that contains the fix.

pip install --upgrade "pyarrow==0.15.0"

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