docs: add creating-security-bulletins skill, bulletin template, and triage control-case rule - #1820
Open
lukaszlenart wants to merge 2 commits into
Open
docs: add creating-security-bulletins skill, bulletin template, and triage control-case rule#1820lukaszlenart wants to merge 2 commits into
lukaszlenart wants to merge 2 commits into
Conversation
Captures the editorial process for S2-XXX security bulletins, which has been implicit until now, as a companion to the existing triaging-security-reports skill. Triage establishes what is true; this covers what the published page is allowed to say. The load-bearing part is the disclosure budget. Earlier bulletins explained causes and mitigations in enough detail to build working exploits, and the project moved away from that; this writes the rule down and extends it past Problem to Backward compatibility and Workaround, which is where a carefully guarded advisory tends to leak. Also records conventions that were previously tacit: - Affected Software lists voted releases only, never a build that failed its test period, and never a range inferred from git tags - ratings match a definition on the Security Bulletins page, which is the only authority since the four-level naming postdates older advisories - workarounds are verified in source or not published, including the claim that none exists - behavioural claims are derived from the fix diff rather than its commit message, and the fix is confirmed merged before publication - who is *not* affected is stated explicitly, since scoping shrinks the population that has to act bulletin-template.md is the source of truth for page structure and carries the storage-format skeleton; the restricted wiki template becomes a rendered copy of it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
lukaszlenart
requested review from
cnenning,
jogep,
kusalk,
rgielen and
yasserzamani
July 29, 2026 12:35
lukaszlenart
marked this pull request as ready for review
July 29, 2026 12:35
Two gaps surfaced by triaging a real report against the skill. The claim table told the triager to trace a PoC through the code but never to run it, even when the reporter supplied a runnable one. Reading and inferring is weaker evidence than executing, and the report that exposed this shipped a JUnit test and the exact command to run it. More importantly, the skill never said to look for the control case. A single odd behaviour is nearly always arguable as intended -- a type that opts into dynamic binding can be read as the developer asking for it. What settles the question is the sibling that behaves correctly under the same input: when one dispatch path rejects an unannotated member and its neighbour does not, the control is incomplete rather than by design, and that divergence is the finding. Two independent triages of the same report both relied on this argument, and neither the skill nor THREAT_MODEL.md prompted for it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
lukaszlenart
marked this pull request as draft
July 29, 2026 16:06
|
lukaszlenart
marked this pull request as ready for review
July 29, 2026 19:35
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.



Documents the editorial process for S2-XXX security bulletins as a companion to the existing
triaging-security-reportsskill, and closes two gaps in that skill found by running it against a live report.Triage establishes what is true; the new skill covers what the published page is allowed to say. This is as much a policy proposal as a tooling change, and the disclosure budget is the part worth PMC review.
Why
Earlier bulletins explained causes and mitigations in enough detail to build working exploits. The project moved away from that, but the rule was never written down — it lived in the heads of whoever happened to be drafting. This records it, and extends it past
ProblemtoBackward compatibilityandWorkaround, which is where a carefully guarded advisory tends to leak: describing what changed about the fixed behaviour describes the defect.What else it records
Conventions that were previously tacit, each derived from how recent bulletins are actually written:
Changes to
triaging-security-reportsThe second commit adds two rules, both found by putting the existing skill against a real inbound report rather than by reasoning about it:
The second rule is the load-bearing one. Two independent triages of the same report both leaned on that argument to rule out "by design", and neither the skill nor
THREAT_MODEL.mdprompted for it — it was reached twice by instinct, which is precisely what a written process should make routine.Files
creating-security-bulletins/SKILL.md— the methodcreating-security-bulletins/bulletin-template.md— field reference, per-section guidance, pre-publication checklist, and a storage-format skeleton ready to POST to the Confluence APItriaging-security-reports/SKILL.md— the two rules abovebulletin-template.mdis the source of truth for page structure. The restricted wiki template becomes a rendered copy of it, so the process is reviewable here rather than only being visible tostruts-committers.Notes for review
SECURITY.md,AGENTS.mdandTHREAT_MODEL.mdlanded🤖 Generated with Claude Code