Split security policy into three documents - #6504
Draft
eriknordmark wants to merge 4 commits into
Draft
Conversation
The security policy answered three unrelated questions in one file, and the one it answered worst was which releases still get security fixes: a hand-maintained table in a file nobody opens during a release had drifted into marking 10.4.x and 12.0.x supported, two lines whose branches have been untouched since July 2024 and June 2025. A vendor shipping EVE reads that table as the upstream support commitment behind its own. Reduce SECURITY.md to what a reporter needs — where to report, what to include, when to expect an acknowledgment, the disclosure timeline, safe harbor and testing boundaries, and what is in scope across the EVE repositories — and move the other two questions to documents that own them. docs/RELEASE-SUPPORT.md becomes the authoritative statement of which lines receive fixes, and records what the GitHub prerelease flag encodes, since only -lts tags are published as full releases and that is what makes the releases/latest link resolve to the current LTS. docs/VULNERABILITY-HANDLING.md describes what happens after a report arrives: triage, severity, patch development in the advisory private fork, CVE assignment, embargo and vendor pre-notification, publication, and the path for a vulnerability already under active exploitation. Scope now names the repositories that build or ship code into a released image, separates the build and test repositories, and states that a controller vulnerability belongs to that controller's vendor. The SBoM document was reachable from no other page in the tree and is now linked. Values only the TSC can decide are marked TBD(TSC): support end-dates and the end-of-life determinations, the triage window, remediation targets per severity, the security team roster, the CNA path, and the pre-notification lead time and membership criteria. Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CNA is the CVE Numbering Authority abbreviation, which codespell reads as a misspelling of "can". The vulnerability handling policy has to name the role when it describes how a CVE identifier gets requested, so add the term to the domain vocabulary the ignore list already carries. Nothing else in the tree produces a CNA finding, so this suppresses only the intended term. Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6504 +/- ##
==========================================
+ Coverage 25.95% 26.25% +0.29%
==========================================
Files 513 523 +10
Lines 94155 95871 +1716
==========================================
+ Hits 24441 25173 +732
- Misses 67833 68628 +795
- Partials 1881 2070 +189 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The Linux Foundation asked its hosted projects to name their CRA steward in SECURITY.md ahead of the reporting obligations that start on 11 September 2026. LF's project-hosting legal entities act as the stewards, are registered on the ENISA single reporting platform, and file the regulatory reports, so a project does not build its own reporting function; what it has to do is identify the steward, route reports through a channel the security team can escalate from, and reach the steward's contact immediately when a vulnerability turns out to be actively exploited. Add that statement, adapted from the template LF supplied, and mark actively exploited reports as the case where the reporter should say so up front, since that is what starts the steward's 24-hour clock. The handling policy claimed that downstream vendors alone notify CSIRTs and ENISA. That is only one of two tracks: the steward files as well, and the security team owes it an immediate escalation for an actively exploited vulnerability or for a severe incident affecting the project's own release process. Separate the two tracks and add the escalation as the first step of the actively-exploited path. Signed-off-by: eriknordmark <erik@zededa.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GhfowfL6NxSopWpQh2T4mD
An LTS line now carries a stated security-support period: 24 months of active support with point releases from the first .0-lts publication, then 12 months of backports on the stable branch. Every date in the table is derived from a published release, so a downstream vendor can check it without asking the project. Lines older than 13.4 were promoted to LTS partway through and have no .0-lts release, so the policy sets no start date for them and they are marked for end-of-life confirmation. SECURITY.md names LF Edge explicitly as the hosting foundation and gives both halves of the steward's reporting clock, matching the template the Linux Foundation sent its hosted projects. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GhfowfL6NxSopWpQh2T4mD Signed-off-by: eriknordmark <erik@zededa.com>
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.
Description
Draft: the values marked
TBD(TSC)need project decisions before this is mergeable. See "Open decisions" below.The security policy answered three unrelated questions in one file, and the one it answered worst was which releases still get security fixes. A hand-maintained table in a file nobody opens during a release had drifted into marking 10.4.x and 12.0.x supported —
10.4-stablehas had no commit since July 2024 and12.0-stablenone since June 2025. That matters beyond tidiness: a vendor shipping an EVE-based product reads that table as the upstream commitment sitting behind the support period it promises its own customers.This splits the file three ways:
SECURITY.mdkeeps only what a reporter needs: where to report, what to include, when to expect an acknowledgment, the disclosure timeline, safe harbor and testing boundaries, what is in scope, and where advisories appear.docs/RELEASE-SUPPORT.mdbecomes the authoritative statement of which lines receive security fixes. It also writes down what the GitHub prerelease flag encodes, which is currently folklore: only-ltstags are published as full releases, and that is what makes thereleases/latestlink in the README resolve to the current LTS rather than to the newest agile release.docs/VULNERABILITY-HANDLING.mddescribes what happens after a report arrives — triage, severity, patch development in the advisory private fork, CVE assignment, embargo and vendor pre-notification, publication, and the separate path for a vulnerability already under active exploitation.Moving the version list out of
SECURITY.mdfollows what projects that keep their policy current do. Kubernetes, Istio and Moby all keep a "Supported Versions" heading and delegate the list to a living document; the canonical OpenSSF security-policy templates carry no supported-version content at all. The GitHub releases page is not a candidate for that pointer, because it has no support-status field and cannot express a line that receives backports without a release being cut, which is 13.4.x today.SECURITY.mdalso carries the CRA stewardship statement the Linux Foundation asked its hosted projects to add, adapted from LF's template. LF's project-hosting legal entities act as the CRA stewards for the projects they host, are registered on the ENISA single reporting platform, and file the regulatory reports, so the project's job is to name the steward and to reach its contact immediately when a vulnerability turns out to be actively exploited — not to build a reporting function. This also corrects the handling policy, which claimed downstream vendors alone notify CSIRTs and ENISA; the steward files as well, and those are two separate tracks.Three smaller changes ride along. Scope now names the repositories that build or ship code into a released image separately from the build and test repositories, and states that a vulnerability in a particular controller belongs to that controller's vendor — EVE is controller-agnostic.
docs/SBOM-AND-SOURCES.mdwas reachable from no other page in the tree and is now linked, which matters for anyone doing component due diligence on an EVE-based product. And the acknowledgment SLA is now labelled as an acknowledgment, so it is not mistaken for a regulatory reporting deadline that happens to carry the same number of hours.Open decisions
Every marker is greppable as
TBD(TSC). None are inSECURITY.md.RELEASE-SUPPORT.mdtableRELEASE-SUPPORT.mdtableRELEASE-SUPPORT.mdpre-notificationVULNERABILITY-HANDLING.mdsecurity teamVULNERABILITY-HANDLING.mdtriageVULNERABILITY-HANDLING.mdremediationVULNERABILITY-HANDLING.mdCVE assignmentVULNERABILITY-HANDLING.mdpre-notificationSECURITY.mdCRA stewardshipsupport@linuxfoundation.orgcan confirm itSECURITY.mdCRA stewardshipVULNERABILITY-HANDLING.mdescalationTwo values are filled in rather than marked, and both are published commitments worth confirming:
SECURITY.md. It is aggressive for a volunteer team; the OpenSSF template default is three working days.How to test and validate this PR
Documentation only; no build or runtime change, and nothing to test on device.
markdownlintunder the repository's own.markdownlint.yamlreports no findings on the three files.RELEASE-SUPPORT.md#pre-notification-listandCONTRIBUTING.md#backporting../tools/spdx-check.sh upstream/masterpasses.For review, the substantive questions are whether the scope section draws the repository boundary correctly, and whether the handling policy matches how the security team actually wants to work — it is written as a proposal, not a description of existing practice.
Changelog notes
The security policy is reorganized.
SECURITY.mdnow covers reporting and disclosure only; security support per release line moves todocs/RELEASE-SUPPORT.md, and the vulnerability handling process is documented indocs/VULNERABILITY-HANDLING.md. The previously published support table listed release lines that no longer receive fixes.PR Backports
GitHub surfaces
SECURITY.mdfrom the default branch only, so a backport would not change what a reporter sees. The documents describe the project as a whole rather than a branch, and per-branch copies would diverge.Checklist
Device testing does not apply: the PR changes three Markdown files and no build input. No
stablelabel, since nothing is proposed for backport.🤖 Generated with Claude Code
https://claude.ai/code/session_01GhfowfL6NxSopWpQh2T4mD