Skip to content

chore(deps): update dependency pyarrow to v23 [security]#8795

Open
renovate[bot] wants to merge 1 commit into
developfrom
renovate/pypi-pyarrow-vulnerability
Open

chore(deps): update dependency pyarrow to v23 [security]#8795
renovate[bot] wants to merge 1 commit into
developfrom
renovate/pypi-pyarrow-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
pyarrow 21.0.023.0.1 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Apache Arrow: Potential use-after-free when reading IPC file with pre-buffering

CVE-2026-25087 / GHSA-rgxp-2hwp-jwgg

More information

Details

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

Severity

  • CVSS Score: 7.0 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Apache Arrow: Potential use-after-free when reading IPC file with pre-buffering

CVE-2026-25087 / GHSA-rgxp-2hwp-jwgg / PYSEC-2026-113

More information

Details

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

Severity

  • CVSS Score: 7.0 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


CVE-2026-25087 / GHSA-rgxp-2hwp-jwgg / PYSEC-2026-113

More information

Details

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

Severity

  • CVSS Score: 7.0 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H

References

This data is provided by OSV and the PyPI Advisory Database (CC-BY 4.0).


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the changelog/chore A trivial change label Jul 16, 2026
@github-actions

github-actions Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Polar Signals Profiling Results

Latest Run

Status Commit Job Attempt Link
🟢 Done 0fa318b 1 Explore Profiling Data

Powered by Polar Signals Cloud

@github-actions

Copy link
Copy Markdown
Contributor

Benchmarks: Vortex queries

Verdict: No clear signal (low confidence)
Attributed Vortex impact: +5.2%
Engines: DataFusion No clear signal (+7.3%, medium confidence) · DuckDB No clear signal (+3.2%, low confidence)
Vortex (geomean): 1.025x ➖
Parquet (geomean): 0.999x ➖
Shifts: Parquet (control) -0.1% · Median polish +3.4%

How to read Verdict and Engines
  • Verdict: Overall PR-level signal after subtracting baseline drift estimated from Parquet control rows. It can be Likely improvement, Likely regression, or No clear signal.
  • Engines: Per-engine attribution. DataFusion is compared against DataFusion/Parquet controls; DuckDB is compared against DuckDB/Parquet controls. This answers whether each engine improved or regressed independently.
  • Confidence: Based on directional consistency, share of rows above the noise floor, and control-run noise.

datafusion / vortex-file-compressed (1.053x ➖, 0↑ 0↓)
name PR 0fa318b (ns) base 9c69195 (ns) ratio (PR/base)
vortex_q00/datafusion:vortex-file-compressed 9695072 9520691 1.02
vortex_q01/datafusion:vortex-file-compressed 6675601 6132142 1.09
datafusion / parquet (0.981x ➖, 0↑ 0↓)
name PR 0fa318b (ns) base 9c69195 (ns) ratio (PR/base)
vortex_q00/datafusion:parquet 20077100 20493747 0.98
vortex_q01/datafusion:parquet 4607692 4691891 0.98
duckdb / vortex-file-compressed (1.050x ➖, 0↑ 0↓)
name PR 0fa318b (ns) base 9c69195 (ns) ratio (PR/base)
vortex_q00/duckdb:vortex-file-compressed 10315365 9983879 1.03
vortex_q01/duckdb:vortex-file-compressed 6325911 5930153 1.07
duckdb / parquet (1.018x ➖, 0↑ 0↓)
name PR 0fa318b (ns) base 9c69195 (ns) ratio (PR/base)
vortex_q00/duckdb:parquet 23599068 23159118 1.02
vortex_q01/duckdb:parquet 9540484 9388300 1.02

No file size changes detected.

@codspeed-hq

codspeed-hq Bot commented Jul 16, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 16.77%

⚡ 16 improved benchmarks
✅ 1644 untouched benchmarks
🆕 10 new benchmarks
⏩ 52 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation new_bp_prim_test_between[i32, 32768] 155.4 µs 124 µs +25.3%
Simulation new_bp_prim_test_between[i16, 32768] 151.3 µs 122.2 µs +23.74%
Simulation new_alp_prim_test_between[f32, 32768] 170 µs 138.8 µs +22.52%
Simulation new_bp_prim_test_between[i32, 16384] 96.2 µs 80.2 µs +19.88%
Simulation new_bp_prim_test_between[i16, 16384] 92.8 µs 78.1 µs +18.8%
Simulation new_bp_prim_test_between[i64, 32768] 163.3 µs 138.2 µs +18.16%
Simulation new_alp_prim_test_between[f32, 16384] 106.8 µs 90.9 µs +17.48%
Simulation new_raw_prim_test_between[f32, 32768] 121.5 µs 103.9 µs +17%
Simulation new_alp_prim_test_between[f64, 32768] 178 µs 153 µs +16.3%
Simulation new_bp_prim_test_between[i64, 16384] 102 µs 89.2 µs +14.26%
Simulation new_raw_prim_test_between[i32, 32768] 114.7 µs 100.5 µs +14.18%
Simulation new_raw_prim_test_between[u32, 32768] 116.8 µs 102.4 µs +14.13%
Simulation new_raw_prim_test_between[f32, 16384] 75.2 µs 66.3 µs +13.35%
Simulation new_alp_prim_test_between[f64, 16384] 113.8 µs 101.3 µs +12.37%
Simulation new_raw_prim_test_between[i32, 16384] 71.8 µs 64.6 µs +11.1%
Simulation new_raw_prim_test_between[u32, 16384] 72.9 µs 65.6 µs +11.02%
🆕 Simulation collect_bool_u32_gt[1024] N/A 6.3 µs N/A
🆕 Simulation collect_bool_u32_gt[65536] N/A 205.5 µs N/A
🆕 Simulation from_bool_slice[1024] N/A 2.2 µs N/A
🆕 Simulation from_bool_slice[65536] N/A 40.1 µs N/A
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.


Comparing renovate/pypi-pyarrow-vulnerability (0fa318b) with develop (f742e8a)2

Open in CodSpeed

Footnotes

  1. 52 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on develop (9c69195) during the generation of this report, so f742e8a was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/chore A trivial change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants