Skip to content

docs(security): advisory-accurate reason for the pyarrow safety ignore - #228

Merged
brownjuly2003-code merged 5 commits into
mainfrom
chore/pyarrow-ignore-reason
Jul 20, 2026
Merged

docs(security): advisory-accurate reason for the pyarrow safety ignore#228
brownjuly2003-code merged 5 commits into
mainfrom
chore/pyarrow-ignore-reason

Conversation

@brownjuly2003-code

Copy link
Copy Markdown
Owner

What

Comment-only. Rewrites the SFTY-20260217-93940 ignore reason in the safety step after an external deep-review flagged the old wording as weak: it claimed the Flink jobs "only exchange beam-internal Arrow IPC", which is likely false on the DataStream path (STRING/pickle coders, no Arrow IPC at all) — while missing the much stronger official argument.

Verified 2026-07-20 against GHSA-rgxp-2hwp-jwgg and pyflink release-2.3.0 sources:

  • The vulnerable API is RecordBatchFileReader::PreBufferMetadata — C++ IPC file reader with pre-buffering enabled (off by default). The advisory states verbatim that the functionality "is not exposed in language bindings (Python, Ruby, C GLib), so these bindings are not vulnerable".
  • PyFlink imports pyarrow lazily and only for Table/pandas Arrow coders (fn_execution/coders.py); their decode path is pa.ipc.open_stream — the IPC stream reader, explicitly excluded by the advisory. Our jobs never trigger those branches.

Verification

  • yaml.safe_load on security.yml OK; tests/unit/test_security_workflow.py passes (contract untouched — trivy SBOM steps only).

🤖 Generated with Claude Code

…isory

External review (Grok deep-audit follow-up) flagged the old reason as
both overclaiming and underusing the facts: it argued "only beam-internal
IPC", but on the DataStream STRING/pickle path no Arrow IPC is exchanged
at all, and the stronger official finding went unused. Per
GHSA-rgxp-2hwp-jwgg (verified 2026-07-20): the vulnerable API is the C++
IPC *file* reader with pre-buffering enabled, not exposed in Python
bindings — the pyarrow wheel cannot reach the bug. PyFlink's only pyarrow
use is the lazy Table/pandas ArrowCoder whose decode is pa.ipc.open_stream
(IPC stream reader), explicitly excluded by the advisory.

No behavior change — comment only.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown

DORA Metrics

  • Window: last 30 days
  • Branch: main
  • Deployment frequency: 125 total / 29.17 per week
  • Lead time for changes: avg 0.79h / median 0.0h
  • Change failure rate: 77.6% (97/125)
  • MTTR: 20.13h across 5 incident(s)

@brownjuly2003-code
brownjuly2003-code merged commit 09d9661 into main Jul 20, 2026
24 checks passed
@brownjuly2003-code
brownjuly2003-code deleted the chore/pyarrow-ignore-reason branch July 20, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants