CVE-2026-25087
Received Received - Intake
Use-After-Free in Apache Arrow C++ IPC File Reader Causes Crashes

Publication date: 2026-02-17

Last updated on: 2026-03-11

Assigner: Apache Software Foundation

Description
Use After Free vulnerability in Apache Arrow C++. This issue affects Apache Arrow C++ from 15.0.0 through 23.0.0. It can be triggered when reading an Arrow IPC file (but not an IPC stream) with pre-buffering enabled, if the IPC file contains data with variadic buffers (such as Binary View and String View data). Depending on the number of variadic buffers in a record batch column and on the temporal sequence of multi-threaded IO, a write to a dangling pointer could occur. The value (a `std::shared_ptr<Buffer>` object)Β that is written to the dangling pointer is not under direct control of the attacker. Pre-buffering is disabled by default but can be enabled using a specific C++ API call (`RecordBatchFileReader::PreBufferMetadata`). The functionality is not exposed in language bindings (Python, Ruby, C GLib), so these bindings are not vulnerable. The most likely consequence of this issue would be random crashes or memory corruption when reading specific kinds of IPC files. If the application allows ingesting IPC files from untrusted sources, this could plausibly be exploited for denial of service. Inducing more targeted kinds of misbehavior (such as confidential data extraction from the running process) depends on memory allocation and multi-threaded IO temporal patterns that are unlikely to be easily controlled by an attacker. Advice for users of Arrow C++: 1. check whether you enable pre-buffering on the IPC file reader (usingΒ `RecordBatchFileReader::PreBufferMetadata`) 2. if so, either disable pre-buffering (which may have adverse performance consequences), or switch to Arrow 23.0.1 which is not vulnerable
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-02-17
Last Modified
2026-03-11
Generated
2026-05-07
AI Q&A
2026-02-17
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
apache arrow From 15.0.0 (inc) to 23.0.1 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-416 The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability is a Use After Free issue in Apache Arrow C++ versions 15.0.0 through 23.0.0. It occurs when reading an Arrow IPC file with pre-buffering enabled, specifically if the file contains data with variadic buffers like Binary View and String View data.

The problem arises because, depending on the number of variadic buffers and the timing of multi-threaded IO, a write operation may target a dangling pointer. This dangling pointer points to a shared pointer object that is not directly controlled by an attacker.

Pre-buffering is disabled by default and only enabled via a specific C++ API call. Language bindings such as Python, Ruby, and C GLib are not vulnerable because they do not expose this functionality.


How can this vulnerability impact me? :

The most likely impact of this vulnerability is random crashes or memory corruption when reading certain IPC files with pre-buffering enabled.

If your application processes IPC files from untrusted sources, this vulnerability could be exploited to cause denial of service by crashing the application.

More targeted attacks, such as extracting confidential data from the running process, are unlikely because they depend on complex memory allocation and multi-threaded IO timing patterns that are difficult for an attacker to control.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

I don't know


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability occurs when reading an Arrow IPC file with pre-buffering enabled using the Apache Arrow C++ API. Detection involves checking if your application uses the RecordBatchFileReader::PreBufferMetadata API to enable pre-buffering on IPC file readers.

Since the vulnerability is triggered by specific IPC files containing variadic buffers and pre-buffering enabled, you can detect potential issues by monitoring for random crashes or memory corruption events when processing such files.

There are no specific network or system commands provided in the available information to detect this vulnerability directly.


What immediate steps should I take to mitigate this vulnerability?

To mitigate this vulnerability, first check if your application enables pre-buffering on the IPC file reader using RecordBatchFileReader::PreBufferMetadata.

  • If pre-buffering is enabled, disable it to avoid triggering the vulnerability, though this may impact performance.
  • Alternatively, upgrade to Apache Arrow C++ version 23.0.1 or later, which contains the fix for this vulnerability.

Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart