-
Notifications
You must be signed in to change notification settings - Fork 54
Add SPEC 11 on vulnerability disclosure #391
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
base: main
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,164 @@ | ||||||
--- | ||||||
title: "SPEC 11 — Vulnerability disclosure" | ||||||
number: 11 | ||||||
date: 2025-05-13 | ||||||
author: | ||||||
- "Juanita Gomez <[email protected]>" | ||||||
- "Mihai Maruseac <[email protected]>" | ||||||
is-draft: true | ||||||
endorsed-by: | ||||||
--- | ||||||
|
||||||
## Description | ||||||
|
||||||
This SPEC outlines the process for vulnerability disclosure. It aims to | ||||||
provide clear guidelines for the identification, reporting, and remediation of | ||||||
security vulnerabilities within projects. | ||||||
|
||||||
### Core Project Endorsement | ||||||
|
||||||
### Ecosystem Adoption | ||||||
|
||||||
TODO: Risks in smaller projects vs risks in larger projects. This might change | ||||||
strict adherence to the implementation here. | ||||||
|
||||||
## Implementation | ||||||
|
||||||
Security vulnerabilities should be handled quickly, and sometimes privately. | ||||||
The primary goal of this process is to reduce the total time users are | ||||||
vulnerable to both publicly and privately known reports. | ||||||
|
||||||
To achieve this goal, the project should provide well-defined ways to report | ||||||
vulnerabilities (e.g., special email address such as `security@<project>.com`, | ||||||
forum, GitHub private security reporting, vulnerability reward programs). All | ||||||
suspected vulnerabilities should be handled in accordance with | ||||||
[Responsible Disclosure model](https://en.wikipedia.org/wiki/Coordinated_vulnerability_disclosure). | ||||||
The project should provide a mechanism for researchers to submit GPG encrypted | ||||||
vulnerability reports, for vulnerabilities with a higher degree of | ||||||
sensitivity. | ||||||
|
||||||
The project should ensure that a _Security Response Team_ (SRT) exists. This | ||||||
team could be shared with other projects in the same organization, or within | ||||||
the same ecosystem. SRT has the following responsibilities: | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
||||||
- Triage: assess the impact of any vulnerability. Can the vulnerability be | ||||||
replicated? Which projects are affected? What is the blast radius? Who is | ||||||
responsible for the fix? Is there a need for coordinated disclosure between | ||||||
multiple projects? | ||||||
- Infrastructure: create security advisories, ensure teams working on fixing a | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
vulnerability can work in private, create tests for the vulnerability and | ||||||
its variants. | ||||||
- Disclosure: handle public messaging around the vulenrability by drafting an | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
advisory to document the impact, how to upgrade, how to mitigate if upgrade | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
is not possible. | ||||||
- Release: create patch releases containing the fix and notify the public. | ||||||
|
||||||
For each vulnerability, the SRT should follow these steps: | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
||||||
1. **Acknowledge the report**: The SRT should respond to any report in at most | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
24 hours. For this, there should be inventory of all the places where | ||||||
mihaimaruseac marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
24 hours. For this, there should be inventory of all the places where | |
24 hours. For this, there should be inventory of all the places where |
Ideally these should be kept to a minimum, otherwise the potential increases for these additional information sources to worsen mental load and stretch teams even thinner
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree. I should probably add that to the text too.
Uh oh!
There was an error while loading. Please reload this page.