Skip to content

Document Security Policy#9730

Open
alamb wants to merge 14 commits intoapache:mainfrom
alamb:alamb/security_model
Open

Document Security Policy#9730
alamb wants to merge 14 commits intoapache:mainfrom
alamb:alamb/security_model

Conversation

@alamb
Copy link
Copy Markdown
Contributor

@alamb alamb commented Apr 15, 2026

Which issue does this PR close?

Rationale for this change

Other arrow subprojects (C++ in particular) has been beset recently by a deluge of low quality bug reports masquerading as security problems.

To reduce this flow and make it easier to direct people to the appropriate bug vs feature venue, we should document our security posture better

What changes are included in this PR?

  1. Add SECURITY.md
  2. Clarify what is a bug vs a security issue
  3. Sprinkle links to SECURITY around

Are these changes tested?

By CI

Are there any user-facing changes?

yes, new policyt

@github-actions github-actions Bot added parquet Changes to the parquet crate arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate parquet-derive arrow-avro arrow-avro crate labels Apr 15, 2026
@alamb alamb changed the title Alamb/security model Document Security Policy Apr 15, 2026
@alamb alamb added the documentation Improvements or additions to documentation label Apr 15, 2026
@alamb alamb marked this pull request as ready for review April 15, 2026 12:53
@alamb
Copy link
Copy Markdown
Contributor Author

alamb commented Apr 15, 2026

FYI @scovich @Jefffrey @etseidl @tustvold @jhorstmann, and @crepererum who may be interested in commenting on this policy

Copy link
Copy Markdown
Contributor

@scovich scovich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The doc and associated link sprinkling seem very reasonable and welcome, but I don't think I understand how this will "reduce the flow" of "a deluge of low quality bug reports masquerading as security problems" ?

Or does it just make it easier to summarily close them because they don't follow the official guidelines?

Comment thread SECURITY.md Outdated
@alamb
Copy link
Copy Markdown
Contributor Author

alamb commented Apr 15, 2026

The doc and associated link sprinkling seem very reasonable and welcome,

❤️

but I don't think I understand how this will "reduce the flow" of "a deluge of low quality bug reports masquerading as security problems" ?

Or does it just make it easier to summarily close them because they don't follow the official guidelines?

Yes, basically having this documented means that upstream filters (aka the apache security team) can point to these guidelines if they get reports that are bugs. At the moment in Arrow sometimes it is not clear which crash is a security issue and which is just a bug

I think we should define what exploitable means, as it is so important to this section.

Yes that is an excellent idea and I will do so

Copy link
Copy Markdown
Contributor

@etseidl etseidl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks for doing this @alamb.

Comment thread arrow/src/lib.rs Outdated
Comment thread parquet/README.md
[`simdutf8`]: https://crates.io/crates/simdutf8
[parquet variant]: https://github.com/apache/parquet-format/blob/master/VariantEncoding.md

## Parquet Feature Status
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this section removed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 -- not sure -- will revert

Comment thread arrow/src/lib.rs
//! malformed input is considered a **bug**, not a security vulnerability,
//! unless it is **exploitable** by an attacker to
//!
//! * Execute arbitrary code (Remote Code Execution);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added explicit definition of what exploitable means here. I did not include a "Denial Of Service" per the discussion with @tustvold on https://github.com/apache/arrow/pull/49761/changes#r3087975701

Comment thread SECURITY.md Outdated
Comment thread arrow/src/lib.rs Outdated
//! Like many crates, this crate makes use of `unsafe` where prudent. However, it endeavors to be
//! sound. Specifically, **it should not be possible to trigger undefined behavior using safe APIs.**
//!
//! For more information on the use of unsafe, see [here](https://github.com/apache/arrow-rs/tree/main/arrow#safety).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should a soundness issue be considered a security issue or not? I mainly ask as whilst we want to encourage reporting of soundness issues, they aren't in and of themselves exploitable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest we treat them as a security "issue" but not treated as a security vulnerability that requires special reporting / alerting unless there is some evidence it can actually be exploited

I tried to clarify this in the "security" part of arrow/README

Unexpected behavior (e.g., panics, crashes, or infinite loops) triggered by
malformed input, and instances of undefined behavior (UB) triggered via safe
APIs are considered bugs rather than security vulnerabilities unless they are exploitable
by an attacker to

I do agree this leaves some interpretation about what "exploitable by an attacker" really means but I think some level of interpretation is unavoidable for undefined behavior in principle (as it is undefined)

I will add a note to the safety section referring to the security section to make this explicit

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added more explanation to SECURITY.md and left links to there

Comment thread SECURITY.md
If that exploitation path is unclear, the issue should likely be reported as a
bug.

## Rust Safety, Soundness, and Undefined Behavior
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this section to try and help define that not all soundness issues are vulnerabilities. I think it makes our current practice explicit.

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

Labels

arrow Changes to the arrow crate arrow-avro arrow-avro crate arrow-flight Changes to the arrow-flight crate documentation Improvements or additions to documentation parquet Changes to the parquet crate parquet-derive

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a security policy for arrow-rs

5 participants