-
Notifications
You must be signed in to change notification settings - Fork 1
docs(security): define coordinated disclosure lifecycle #104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
seonghobae
merged 33 commits into
docs/canonical-product-architecture
from
docs/security-disclosure-lifecycle
Aug 12, 2026
Merged
Changes from 29 commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
8d8b0d8
test(security): require coordinated disclosure lifecycle
seonghobae 218e802
docs(security): define disclosure lifecycle and support boundary
seonghobae b488c81
docs(doctoring): record disclosure standards evidence
seonghobae 27f9bfd
docs(doctoring): clarify advisory collaboration evidence
seonghobae fcb8123
test(security): match reporter-credit policy wording
seonghobae 3936235
test(docs): bind SSDF draft authorship evidence
seonghobae 4137aaf
docs(security): correct SSDF draft authorship citation
seonghobae 21e149e
merge: stack disclosure policy on canonical docs
seonghobae ab94053
merge: refresh disclosure policy on canonical docs
seonghobae 45a0ffd
test(docs): carry canonical changelog contract
seonghobae e29dcf0
docs: carry canonical changelog entry
seonghobae 0fc208e
merge: refresh disclosure policy on canonical changelog
seonghobae a6354b9
Merge canonical traceability refresh into disclosure lifecycle
seonghobae 8bcb046
Merge traceability snapshot boundary into disclosure lifecycle
seonghobae ec1ead5
Merge canonical release guide into disclosure lifecycle
seonghobae 44445da
Merge release-guide changelog trace into disclosure lifecycle
seonghobae 19cba12
merge: refresh disclosure policy on live traceability
seonghobae 4c2beb3
merge: refresh disclosure policy on package identity traceability
seonghobae 8e617b3
docs: synchronize disclosure stack with README identity
seonghobae 9e3138c
docs: synchronize disclosure stack with provenance boundary
seonghobae ec8669d
docs: synchronize disclosure stack with standalone identity
seonghobae 4e22a9b
docs: synchronize disclosure stack with auth boundary
seonghobae 8d53790
docs: synchronize disclosure stack with library status
seonghobae 8453f08
Merge canonical guidance into disclosure lifecycle
seonghobae 6b2a272
Merge runtime guide status into disclosure lifecycle
seonghobae ea6bcd6
Merge canonical architecture into disclosure lifecycle
seonghobae 2680fa0
Merge canonical architecture into disclosure lifecycle
seonghobae ef37854
Merge PR #105 evidence boundary into disclosure policy
seonghobae c7aeab9
Merge PR #105 inventory evidence into disclosure docs
seonghobae 5a73705
merge: refresh disclosure policy on inventory consistency
seonghobae e2ffd85
docs(security): fail closed disclosure policy evidence
seonghobae 2b7bf1a
test: enforce private reporting release gate
seonghobae 7257092
docs: synchronize evidence snapshot identity
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| # Security disclosure lifecycle doctoring | ||
|
|
||
| ## Decision | ||
|
|
||
| `SECURITY.md` defines a bounded coordinated vulnerability disclosure and handling lifecycle rather than only a reporting address. The policy separates communication targets from remediation guarantees, keeps unpatched details private, preserves repository release gates for security fixes, and identifies exact released-version evidence as the authoritative remediation boundary. | ||
|
|
||
| The policy is intentionally repository-local. It does not authorize testing of third-party providers or other ContextualWisdomLab repositories and does not convert access to public endpoints into permission for destructive, privacy-invasive, or high-volume testing. | ||
|
|
||
| ## Primary evidence reviewed | ||
|
|
||
| Evidence was rechecked on 2026-08-08 against primary publisher documentation. | ||
|
|
||
| ### ISO/IEC 29147:2018 | ||
|
|
||
| ISO identifies ISO/IEC 29147:2018, *Information technology — Security techniques — Vulnerability disclosure*, as the current published second edition. ISO states that the standard provides requirements and recommendations for receiving reports about potential vulnerabilities and disclosing remediation information. ISO's catalogue states that this edition was last reviewed and confirmed in 2024 and remains current. This supports a documented private-reporting path, disclosure coordination, affected/remediated-version communication, and explicit policy boundaries. | ||
|
|
||
| ### ISO/IEC 30111:2019 | ||
|
|
||
| ISO identifies ISO/IEC 30111:2019, *Information technology — Security techniques — Vulnerability handling processes*, as the current published second edition. ISO states that it covers processing and remediating reported potential vulnerabilities. ISO's catalogue states that this edition was reviewed and confirmed in 2025 and remains current. This supports the receive → validate/scope → remediate/verify → coordinate release → publish → learn lifecycle in `SECURITY.md`. | ||
|
|
||
| ### GitHub vulnerability reporting and repository advisories | ||
|
|
||
| GitHub's current documentation describes GitHub private vulnerability reporting as a structured private channel for public repositories when the feature is enabled. GitHub also documents the repository security advisory workflow as a private collaboration mechanism for discussing, fixing, and publishing vulnerability information. GitHub recommends that `SECURITY.md` explain supported versions and reporting instructions. These sources support the repository's primary reporting URL, public-issue fallback that contains no exploit detail, private remediation collaboration, reporter credit, and advisory publication boundary. | ||
|
|
||
| ### NIST SSDF status | ||
|
|
||
| NIST SP 800-218 Rev. 1, Secure Software Development Framework Version 1.2, is currently an **Initial Public Draft**, published 2025-12-17; its public comment period has closed. The official NIST publication metadata lists Harold Booth, Michael Ogata, Karen Kent, Murugiah Souppaya, and Donna Dodson as the authors and identifies DOI `10.6028/NIST.SP.800-218r1.ipd`. It is therefore contextual acquisition and secure-development evidence, not a finalized normative requirement. NIST describes SSDF as a common set of practices for reducing vulnerabilities and notes its usefulness in supplier/acquirer communication. The repository policy uses that evidence only to reinforce the need for verified remediation and release evidence; ISO/IEC 29147 and ISO/IEC 30111 remain the primary disclosure/handling standards cited by the policy. | ||
|
|
||
| ## Repository contract | ||
|
|
||
| The bounded buyer-visible contract is: | ||
|
|
||
| 1. The latest supported release is the default support boundary; an advisory may explicitly include additional supported release lines. | ||
| 2. `main`, development branches, archived artifacts, forks, and historical tags are not automatically represented as supported releases. | ||
| 3. Private vulnerability reporting is the preferred channel. If unavailable, a public issue may request a secure channel but must not disclose exploit details, secrets, personal data, or unreleased vulnerability details. | ||
| 4. The five-business-day acknowledgement target is a communication objective and **not a remediation SLA**. | ||
| 5. Security remediation follows normal exact-head security, coverage, provenance, independent-review, branch-protection, packaging, and release-acceptance gates; urgency does not create a bypass. | ||
| 6. A GitHub Security Advisory should identify affected and patched versions and may request a CVE when warranted and available. | ||
| 7. Reporter credit is opt-in/appropriate to the coordinated-disclosure context and may be declined. | ||
| 8. Release evidence fails closed: queued, pending, skipped-required, cancelled, absent, failed, stale-head, predecessor-head, or synthetic-merge-only check evidence is not passing evidence. | ||
| 9. The safe-harbor language is bounded good-faith guidance, not authorization against third parties or systems/data the researcher does not control. | ||
|
|
||
| ## Verification | ||
|
|
||
| `tests/test_repository_security_metadata.py::test_security_policy_documents_coordinated_disclosure_lifecycle` locks the buyer-visible policy vocabulary and this evidence receipt. The test is deliberately documentation-focused: it prevents future edits from silently deleting the supported-version boundary, lifecycle, non-SLA qualification, advisory/CVE path, reporter-credit expectation, public-reporting safety rule, or standards provenance. | ||
|
|
||
| This slice does not change production runtime code, provider behavior, credentials, workflows, database objects, or release state. It also does not modify the central `.github` control plane or depend on unmerged central coverage logic. | ||
|
|
||
| ## References (APA 7) | ||
|
|
||
| GitHub. (n.d.). *Adding a security policy to your repository*. GitHub Docs. Retrieved August 8, 2026, from https://docs.github.com/en/code-security/how-tos/report-and-fix-vulnerabilities/configure-vulnerability-reporting/add-security-policy | ||
|
|
||
| GitHub. (n.d.). *Coordinated disclosure of security vulnerabilities*. GitHub Docs. Retrieved August 8, 2026, from https://docs.github.com/en/code-security/concepts/vulnerability-reporting-and-management/coordinated-disclosure | ||
|
|
||
| GitHub. (n.d.). *Privately reporting a security vulnerability*. GitHub Docs. Retrieved August 8, 2026, from https://docs.github.com/en/code-security/how-tos/report-and-fix-vulnerabilities/report-privately | ||
|
|
||
| GitHub. (n.d.). *Repository security advisories*. GitHub Docs. Retrieved August 8, 2026, from https://docs.github.com/en/code-security/concepts/vulnerability-reporting-and-management/repository-security-advisories | ||
|
|
||
| International Organization for Standardization. (2018). *ISO/IEC 29147:2018 Information technology—Security techniques—Vulnerability disclosure* (2nd ed.). https://www.iso.org/standard/72311.html | ||
|
|
||
| International Organization for Standardization. (2019). *ISO/IEC 30111:2019 Information technology—Security techniques—Vulnerability handling processes* (2nd ed.). https://www.iso.org/standard/69725.html | ||
|
|
||
| Booth, H., Ogata, M., Kent, K., Souppaya, M., & Dodson, D. (2025). *Secure software development framework (SSDF) version 1.2: Recommendations for mitigating the risk of software vulnerabilities* (NIST SP 800-218 Rev. 1, Initial Public Draft). National Institute of Standards and Technology. https://doi.org/10.6028/NIST.SP.800-218r1.ipd | ||
|
|
||
| ## APA 7 note | ||
|
|
||
| ISO standards and GitHub first-party documentation use organizational authors. The NIST draft uses the individual authors listed in the official publication metadata, with NIST retained as publisher and the publication DOI used as the persistent locator. Retrieval dates are included for GitHub pages because operational documentation can change without a new edition identifier. ISO edition years and NIST publication status are retained as publisher-controlled version evidence. |
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.