Skip to content

Commit 554316e

Browse files
committed
address review comments from Security Lab folks
1 parent 4fa8620 commit 554316e

6 files changed

Lines changed: 67 additions & 62 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: About coordinated disclosure of security vulnerabilities
3+
intro: 'Vulnerability disclosure is a coordinated effort between security researchers and repository maintainers.'
4+
miniTocMaxHeadingLevel: 4
5+
versions:
6+
free-pro-team: '*'
7+
---
8+
9+
### About disclosing vulnerabilities in the industry
10+
11+
{% data reusables.security-advisory.disclosing-vulnerabilities %}
12+
13+
The initial report of a vulnerability is made privately, and the full details are only published once the maintainer has acknowledged the issue, and ideally made remediations or a patch available, sometimes with a delay to allow more time for the patches to be installed. For more information, see the "[OWASP Cheat Sheet Series about vulnerability disclosure](https://cheatsheetseries.owasp.org/cheatsheets/Vulnerability_Disclosure_Cheat_Sheet.html#commercial-and-open-source-software)" on the OWASP Cheat Sheet Series website.
14+
15+
#### Best practices for vulnerability reporters
16+
17+
Vulnerability reporters such as security researchers should try to report vulnerabilities privately to maintainers. When possible, as a vulnerability reporter, you should avoid:
18+
- Disclosing the vulnerability publicly.
19+
- Bypassing the maintainers.
20+
- Disclosing the vulnerability before a fixed version of the code is available.
21+
- Expecting to be compensated for reporting an issue, where no public bounty program exists.
22+
23+
It's acceptable for vulnerability reporters to disclose a vulnerability publicly after a period of time, if they have tried to contact the maintainers and not received a response, or contacted them and been asked to wait too long to disclose it.
24+
25+
#### Best practices for maintainers
26+
27+
As a maintainer, you should clearly indicate how and where you want to receive reports for vulnerabilities. If this information is not clearly available, vulnerability reporters don't know how to contact you, and may resort to extracting developer email addresses from git commit histories to try to find an appropriate security contact. This can lead to friction, lost reports, or the publication of unresolved reports.
28+
29+
Maintainers should disclose vulnerabilities in a timely manner. If there is a security vulnerability in your repository, you should:
30+
- Treat the vulnerability as a security issue rather than a simple bug, both in your response and your disclosure. For example, you'll need to explicitly mention that the issue is a security vulnerability in the release notes.
31+
- Acknowlege receipt of the vulnerability report as quickly as possible, even if no immediate resources are available for investigation. This sends the message that you are quick to respond and act, and it sets a positive tone for the rest of the interaction between you and the vulnerability reporter.
32+
- Involve the vulnerability reporter when you verify the impact and veracity of the report. It's likely the vulnerability reporter has already spent time considering the vulnerability in a variety of scenarios, some of which you may have not considered yourself.
33+
- Remediate the issue in a way that you see fit, taking any concerns and advice provided by the vulnerability reporter into careful consideration. Often the vulnerability reporter will have knowledge of certain corner cases and remediation bypasses that are easy to miss without a security research background.
34+
- Always acknowledge the vulnerability reporter in terms of crediting the finding.
35+
- Aim to publish a fix as soon as you can.
36+
- Ensure that you make the wider ecosystem aware of the issue and its remediation when you diclose the vulnerability. It is not uncommon to see cases where a recognized security issue is fixed in the current development branch of a project, but the commit or subsequent release is not explicitly marked as a security fix or release. This can cause problems with downstream consumers.
37+
38+
Publishing the details of a security vulnerability doesn't make maintainers look bad. Security vulnerabilities are present everywhere in software, and users will trust maintainers who have a clear and established process for disclosing security vulnerabilities in their code.
39+
40+
### About reporting and disclosing vulnerabilities in projects on {% data variables.product.prodname_dotcom %}
41+
42+
The process for reporting and disclosing vulnerabilities for projects on {% data variables.product.prodname_dotcom_the_website %} is as follows:
43+
44+
If you are a vulnerability reporter (for example, security researcher) who would like report a vulnerability, first check if there is a security policy for the related repository. For more information, see "[About security policies](/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository#about-security-policies)." If there is one, follow it to understand the process before contacting the security team for that repository.
45+
46+
If there isn't a security policy in place, the most efficient way to establish a private means of communication with maintainers is to create an issue asking for a preferred security contact. Once communication is established, you can suggest the maintainers define a security policy for future use.
47+
48+
{% note %}
49+
50+
**Note**: _For npm only_ - If we receive a report of malware in an npm package, we try to contact you privately. If you don't address the issue in a timely manner, we will disclose it. For more information, see "[Reporting malware in an npm package](https://docs.npmjs.com/reporting-malware-in-an-npm-package)" on the npm Docs website.
51+
52+
{% endnote %}
53+
54+
If you've found a security vulnerability in {% data variables.product.prodname_dotcom_the_website %}, please report the vulnerability through our coordinated disclosure process. For more information, see the [{% data variables.product.prodname_dotcom %} Security Bug Bounty](https://bounty.github.com/) website.
55+
56+
If you are a maintainer, you can take ownership of the process at the very beginning of the pipeline by setting up a security policy for your repository, or otherwise making security reporting instructions clearly available, for example in your project’s README file. If there is no security polovy, it's likely that a vulnerability reporter will try to email you or otherwise privately contact you. Alternatively, someone may open a (public) issue with details of a security issue.
57+
58+
As a maintainer, to disclose a vulnerability that exists in your repository, you first create a draft security advisory in your package's repository in {% data variables.product.prodname_dotcom %}. {% data reusables.security-advisory.security-advisory-overview %} For more information, see "[About {% data variables.product.prodname_security_advisories %}](/github/managing-security-vulnerabilities/about-github-security-advisories)."
59+
60+
61+
To get started, see "[Creating a security advisory](/github/managing-security-vulnerabilities/creating-a-security-advisory)."
62+
63+

content/github/managing-security-vulnerabilities/about-disclosing-vulnerabilities.md

Lines changed: 0 additions & 58 deletions
This file was deleted.

content/github/managing-security-vulnerabilities/about-github-security-advisories.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ versions:
1414

1515
### About {% data variables.product.prodname_security_advisories %}
1616

17-
{% data reusables.security-advisory.disclosing-vulnerabilities %} For more information, see "[About disclosing vulnerabilities](/github/managing-security-vulnerabilities/about-disclosing-vulnerabilities)."
17+
{% data reusables.security-advisory.disclosing-vulnerabilities %} For more information, see "[About coordinated disclosure of security vulnerabilities](/github/managing-security-vulnerabilities/about-coordinated-disclosure-of-security-vulnerabilities)."
1818

1919
{% data reusables.security-advisory.security-advisory-overview %}
2020

content/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ You can create a default security policy for your organization or user account.
1919

2020
{% endtip %}
2121

22-
After someone reports a security vulnerability in your project, you can use {% data variables.product.prodname_security_advisories %} to disclose, fix, and publish information about the vulnerability. For more information about the process of reporting and disclosing vulnerabilities in {% data variables.product.prodname_dotcom %}, see "[About disclosing vulnerabilities](/github/managing-security-vulnerabilities/about-disclosing-vulnerabilities#about-reporting-and-disclosing-vulnerabilities-in-github)." For more information about {% data variables.product.prodname_security_advisories %}, see "[About {% data variables.product.prodname_security_advisories %}](/github/managing-security-vulnerabilities/about-github-security-advisories)."
22+
After someone reports a security vulnerability in your project, you can use {% data variables.product.prodname_security_advisories %} to disclose, fix, and publish information about the vulnerability. For more information about the process of reporting and disclosing vulnerabilities in {% data variables.product.prodname_dotcom %}, see "[About coordinated disclosure of security vulnerabilities](/github/managing-security-vulnerabilities/about-coordinated-disclosure-of-security-vulnerabilities#about-reporting-and-disclosing-vulnerabilities-in-github)." For more information about {% data variables.product.prodname_security_advisories %}, see "[About {% data variables.product.prodname_security_advisories %}](/github/managing-security-vulnerabilities/about-github-security-advisories)."
2323

2424
{% data reusables.repositories.github-security-lab %}
2525

content/github/managing-security-vulnerabilities/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ versions:
1111
### Table of Contents
1212
{% topic_link_in_list /managing-security-vulnerabilities-in-your-project %}
1313
{% link_in_list /adding-a-security-policy-to-your-repository %}
14-
{% link_in_list /about-disclosing-vulnerabilities %}
14+
{% link_in_list /about-coordinated-disclosure-of-security-vulnerabilities %}
1515
{% link_in_list /about-github-security-advisories %}
1616
{% link_in_list /permission-levels-for-security-advisories %}
1717
{% link_in_list /creating-a-security-advisory %}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Vulnerability disclosure is an area where collaboration between security researchers and project maintainers is very important, from the moment a potentially harmful security vulnerability is found, right until a vulnerability is disclosed to the world, ideally with a patch available. Typically, when someone lets a maintainer know privately about a security vulnerability, the maintainer develops a fix, validates it, and notifies the users of the project or package.
1+
Coordinated vulnerability disclosure is an area where collaboration between vulnerability reporters and project maintainers is very important, from the moment a potentially harmful security vulnerability is found, right until a vulnerability is disclosed to the world, ideally with a patch available. Typically, when someone lets a maintainer know privately about a security vulnerability, the maintainer develops a fix, validates it, and notifies the users of the project or package.

0 commit comments

Comments
 (0)