Add draft security threat model (THREAT_MODEL.md) + discoverability pointer#1756
Open
potiuk wants to merge 2 commits into
Open
Add draft security threat model (THREAT_MODEL.md) + discoverability pointer#1756potiuk wants to merge 2 commits into
potiuk wants to merge 2 commits into
Conversation
Generated-by: Claude Opus 4.8 (1M context)
Generated-by: Claude Opus 4.8 (1M context)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
This is a proposal for the Struts PMC to review, correct, reject, or adopt — not a finished document and not an obligation. It adds a draft
THREAT_MODEL.mdfor the Apache Struts framework, plus a one-paragraph pointer to it fromSECURITY.md, to improve the project's security-model discoverability for automated security scanners and for triaging inbound reports.It was drafted at the PMC's request (path: "the Security team drafts a v0, the PMC reviews and owns it").
What it does
THREAT_MODEL.md(new) — a structured model: scope and intended use, trust boundaries, adversary model, the security properties the framework provides vs. those it leaves to the embedding application, a known-non-findings list, and a triage-disposition guide. It is built as a strict superset of the existingSECURITY.mdand the published security guidance and links to them rather than duplicating their content (knob lists, reporting process, and developer-responsibility detail stay canonical in those docs). The central framing follows the project's own words — Struts "doesn't provide any security mechanism — it is just a pure web framework" — with OGNL-injection / parameter-binding containment as the property the framework actively defends.SECURITY.md— adds a short "Threat Model" section linking to the new file, so the existingAGENTS.md→SECURITY.md→THREAT_MODEL.mdchain resolves. No existing content is changed or removed.How to review it
Every load-bearing claim carries a provenance tag — (documented) (from your own docs /
SECURITY.md/ security site), (maintainer) (to be filled in as you confirm), or (inferred) (reasoned, not yet ratified). §14 collects the open questions — the fastest way to review is to react to those; each (inferred) claim has a matching question. Anything you correct, we fold in; anything you reject, we drop. The model is versioned with the project and is meant to live in the repo for the PMC to maintain.Nothing here changes framework behaviour — it is documentation only.