Skip to content

Commit e76d1cc

Browse files
authored
Merge pull request #9298 from perminder-17/update-security-md
Expand SECURITY.md with incident response plan
2 parents 3f5d049 + d490794 commit e76d1cc

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

‎SECURITY.md‎

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
Please report security vulnerabilities by emailing: responsible.disclosure@processingfoundation.org
66

7+
### Reporting Channels
8+
9+
1. Security Advisories in a specific repository are received by p5.js admins/maintainers
10+
2. Responsible Disclosure email reports are received by Processing Foundation staff
11+
712
## What to Expect
813

914
- We will acknowledge your email within 72 hours
@@ -19,3 +24,84 @@ Please report security vulnerabilities by emailing: responsible.disclosure@proce
1924
## Scope
2025

2126
You can use the above email to report vulnerabilities in p5.js and related repositories managed by the processing org, including the reference website.
27+
28+
## Accidental Disclosure: Never Share Vulnerabilities Publicly!
29+
30+
Please do not report security vulnerabilities in a public channel. If you notice a vulnerability being disclosed in a public channel (whether on Discord, the forum, GitHub, or other platforms), please flag it to a moderator immediately.
31+
32+
If any moderator in our online community spaces notices something that is plausibly a security vulnerability disclosure (you don’t need to verify deeply at this stage, false positive is OK), they should:
33+
34+
1. screenshot and send to responsible.disclosure@processingfoundation.org
35+
2. delete the public content if possible
36+
3. reach out to the poster with a link to SECURITY.md in the correct project and a brief explanation that the content was taken down for security reasons
37+
38+
## Incident Response Process
39+
40+
Who handles incoming reports of security vulnerabilities? Who responds to security incidents? A mix of Processing Foundation staff, current p5.js maintainers, and p5.js contributors, taking on the following roles and responsibilities:
41+
42+
| Role | Responsibility |
43+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
44+
| Finder / Reporter | Credited when all reporter expectations (below) are met. |
45+
| Incident Lead | First responder; owns the report end-to-end. By default, this is the Project Lead. Handoffs only with a written status summary. Owns advisory publication, and reporter notification. |
46+
| Implementer(s) | Develops the fix; may be a maintainer or contributor nominated by Incident Lead or maintainer(s). |
47+
| Reviewer(s) | At least one other maintainer reviews in the private fork before release. |
48+
| Merge and Deploy | Deploys the updated/patched version. |
49+
50+
Whoever is available to claim the Incident Lead role starts as soon as they can with Phase 0.
51+
52+
### Phase 0 — Intake
53+
54+
Incident Lead:
55+
56+
- Notifies relevant people per project, to see which potential implementers are available
57+
- Moves the conversation into a GitHub Security Advisory, if it is not already on there.
58+
59+
### Phase 1 — Triage & Classification
60+
61+
Acknowledge receipt to the reporter within **72H**, along with triage & classification (below).
62+
63+
Reproduce the issue, potentially iterating with the reporter for more information.
64+
65+
Notify along private maintainer chat channels.
66+
67+
Is something a security vulnerability or incident? Use CIA (Confidentiality, Integrity, Availability):
68+
69+
- (0) Not a problem: cannot reproduce, or behavior already documented as accepted risk in the threat model. Close with explanation.
70+
71+
- (1) Public bug: problem is real but no CIA impact. Respond to the reporter with explanation, but fix openly in a normal PR.
72+
73+
_Example: [decompression bomb patch](https://github.com/processing/p5.js/releases#release-v2.3.3) added in p5.js 2.3.3_
74+
75+
- (2) Vulnerability: impacts CIA (confirmed or plausibly demonstrated), but no evidence of exploitation. Move on to Phase 3 (Fix)
76+
77+
- (3) Incident, including a High-Severity Vulnerability without logs to rule out past exploit: Move on to Phase 2 (Expedited Report) and then 3 (Fix)
78+
79+
_Example: [account takeover vulnerability](https://github.com/processing/p5.js-web-editor/security/advisories/GHSA-p4fp-294x-r7cw) fixed in p5.js Editor 2.22.8_
80+
81+
### Phase 2 — (Incidents Only) Expedited Report
82+
83+
In case of an incident, we have some specific reporting responsibilities, which are also fulfilled within **72H** from the initial report.
84+
85+
### Phase 3 — Private Fix
86+
87+
The GitHub Security Advisory (GHSA) thread is the main place for technical discussion, and enables working on a fix in a private repository with a specific set of collaborators. In the GHSA workflow, there is a severity scoring tool that uses CVSS.
88+
89+
Timing of the fix depends on the CVSS score:
90+
91+
1. Critical: act immediately, as soon as possible
92+
2. High/medium: target patch completion or release within about a week
93+
3. Low: batch into routine releases
94+
95+
### Phase 4 — Release & Disclosure
96+
97+
- Merge + deploy the fix, verify it is patched on production
98+
- Publish advisory and describe patch in release notes
99+
- Notify the reporter(s) and everyone who worked on the fix
100+
101+
## Reporter Expectations
102+
103+
Reporters are offered credit in GHSA if their GitHub username is known and if their report:
104+
105+
- Contains a brief and useful summary, plus clear steps to reproduce
106+
- Focuses on one report per defect, and avoids spurious LLM-generated reports
107+
- Is supportive of the community

0 commit comments

Comments
 (0)