@@ -43,191 +43,136 @@ The current security stewards are documented in the main Node.js
4343
4444## Planning  
4545
46- *  [ ]  Open an [ issue] ( https://github.com/nodejs-private/node-private )  titled
47-   ` Next Security Release ` , and put this checklist in the description.
48- 
49- *  [ ]  Get agreement on the list of vulnerabilities to be addressed:
50-   *  _ ** H1 REPORT LINK** _ : _ ** DESCRIPTION** _  (_ ** CVE or H1 CVE request link** _ )
51-     *  v10.x, v12.x: _ ** LINK to PR URL** _ 
52-   *  ...
53- 
54- *  [ ]  PR release announcements in [ private] ( https://github.com/nodejs-private/nodejs.org-private ) :
55-   *  (Use previous PRs as templates. Don't forget to update the site banner and
56-     the date in the slug so that it will move to the top of the blog list.)
57-   *  (Consider using a [ Vulnerability Score System] ( https://www.first.org/cvss/calculator/3.1 ) 
58-     to identify severity of each report)
59-   *  Share the patch with the reporter when applicable.
60-     It will increase the fix accuracy.
61-   *  [ ]  pre-release: _ ** LINK TO PR** _ 
62-   *  [ ]  post-release: _ ** LINK TO PR** _ 
63-     *  List vulnerabilities in order of descending severity
64-     *  Use the "summary" feature in HackerOne to sync post-release content
65-       and CVE requests. Example [ 2038134] ( https://hackerone.com/bugs?subject=nodejs\& report_id=2038134 ) 
66-     *  Ask the HackerOne reporter if they would like to be credited on the
67-       security release blog page:
68-       ``` text 
69-       Thank you to <name> for reporting this vulnerability. 
70-       ``` 
71- 
72- * [ ] Get agreement on the planned date for the release: _**RELEASE DATE**_ 
73- 
74- * [ ] Get release team volunteers for all affected lines: 
75-   * v12.x: _**NAME of RELEASER(S)**_ 
76-   * ... other lines, if multiple releasers 
46+ *  [ ]  1\.  ** Generating Next Security Release PR** 
47+   *  Run ` git node security --start `  inside [ security-release] [ ]  repository.
48+   *  This command generates a new ` vulnerabilities.json `  file with HackerOne
49+     reports chosen to be released in the ` security-release/next-security-release ` 
50+     folder.
51+   *  It also creates the pull request used to manage the security release.
52+ 
53+ *  [ ]  2\.  ** Review of Reports:** 
54+   *  Reports can be added or removed using the following commands:
55+     *  Use the "summary" feature in HackerOne. Example [ 2038134] ( https://hackerone.com/reports/2038134 ) 
56+     *  ` git node security --add-report=report_id ` 
57+     *  ` git node security --remove-report=report_id ` 
58+ 
59+ *  [ ]  3\.  ** Assigning Severity and Writing Team Summary:** 
60+   *  [ ]  Assign a severity and write a team summary on HackerOne for the reports
61+     chosen in the ` vulnerabilities.json ` .
62+   *  Run ` git node security --sync `  to update severity and summary in
63+     ` vulnerabilities.json ` .
64+ 
65+ *  [ ]  4\.  ** Requesting CVEs:** 
66+   *  Request CVEs for the reports with ` git node security --request-cve ` .
67+   *  Make sure to have a green CI before requesting a CVE.
68+ 
69+ *  [ ]  5\.  ** Choosing or Updating Release Date:** 
70+   *  Get agreement on the planned date for the release.
71+   *  [ ]  Use ` git node security --update-date=YYYY/MM/DD `  to choose or update the
72+     release date.
73+   *  This allows flexibility in postponing the release if needed.
74+ 
75+ *  [ ]  6\.  ** Get release volunteers:** 
76+   *  Get volunteers for the upcoming security release on the affected release
77+     lines.
78+ 
79+ *  [ ]  7\.  ** Preparing Pre and Post Release Blog Posts:** 
80+   *  [ ]  Create a pre-release blog post using ` git node security --pre-release ` .
81+   *  [ ]  Create a post-release blog post using ` git node security --post-release ` .
7782
7883## Announcement (one week in advance of the planned release)  
7984
80- * [ ] Check that all vulnerabilities are ready for release integration: 
81-   * PRs against all affected release lines or cherry-pick clean 
82-   * PRs with breaking changes have a 
83-     [--security-revert](#Adding-a-security-revert-option) option if possible. 
84-   * Approved 
85-   * (optional) Approved by the reporter 
86-     * Build and send the binary to the reporter according to its architecture 
87-       and ask for a review. This step is important to avoid insufficient fixes 
88-       between Security Releases. 
89-   * Pass `make test` 
90-   * Have CVEs 
91-     * Use the "summary" feature in HackerOne to create a description for the 
92-       CVE and the post release announcement. 
93-       Example [2038134](https://hackerone.com/bugs?subject=nodejs\&report_id=2038134) 
94-     * Make sure that dependent libraries have CVEs for their issues. We should 
95-       only create CVEs for vulnerabilities in Node.js itself. This is to avoid 
96-       having duplicate CVEs for the same vulnerability. 
97-   * Described in the pre/post announcements 
98- 
99- * [ ] Pre-release announcement to nodejs.org blog: _**LINK TO BLOG**_ 
100-   (Re-PR the pre-approved branch from nodejs-private/nodejs.org-private to 
101-   nodejs/nodejs.org) 
102- 
103-   If the security release will only contain an OpenSSL update consider 
104-   adding the following to the pre-release announcement: 
105- 
106-   ```text 
107-   Since this security release will only include updates for OpenSSL, if you're using 
108-   a Node.js version which is part of a distribution which uses a system 
109-   installed OpenSSL, this Node.js security update might not concern you. You may 
110-   instead need to update your system OpenSSL libraries, please check the 
111-   security announcements for the distribution. 
112-    ``` 
113- 
114- *  [ ]  Pre-release announcement [ email] [ ] : _ ** LINK TO EMAIL** _ 
115-   *  Subject: ` Node.js security updates for all active release lines, Month Year ` 
116-   *  Body:
117-   ``` text 
118-   The Node.js project will release new versions of all supported release lines on or shortly after Day of week, Month Day of Month, Year 
119-   For more information see: https://nodejs.org/en/blog/vulnerability/month-year-security-releases/ 
120-    ``` 
121-   (Get access from existing manager: Matteo Collina, Rodd Vagg, Michael Dawson,
122-   Bryan English)
123- 
124- *  [ ]  CC 
` [email protected] `  on pre-release
125- 
126- The google groups UI does not support adding a CC, until we figure
127- out a better way, forward the email you receive to
128- 129- 
130- *  [ ]  Post in the [ nodejs-social channel] [ ] 
131-   in the OpenJS slack asking for amplification of the blog post.
132- 
133-   ``` text 
134-   Security release pre-alert: 
135- 
136-   We will release new versions of <add versions> release lines on or shortly 
137-   after Day Month Date, Year in order to address: 
138- 
139-   - # high severity issues 
140-   - # moderate severity issues 
141- 
142-   https://nodejs.org/en/blog/vulnerability/month-year-security-releases/ 
143-    ``` 
144- 
145-   We specifically ask that collaborators other than the releasers and security
146-   steward working on the security release do not tweet or publicise the release
147-   until the tweet from the Node.js twitter handle goes out. We have often
148-   seen tweets sent out before the release and associated announcements are
149-   complete which may confuse those waiting for the release and also takes
150-   away from the work the releasers have put into shipping the releases.
151- 
152- *  [ ]  Request releaser(s) to start integrating the PRs to be released.
153- 
154- *  [ ]  Notify [ docker-node] [ ]  of upcoming security release date: _ ** LINK** _ 
155-   ``` text 
156-   Heads up of Node.js security releases Day Month Year 
157- 
158-   As per the Node.js security release process this is the FYI that there is going to be a security release Day Month Year 
159-    ``` 
160- 
161- *  [ ]  Notify build-wg of upcoming security release date by opening an issue
162-   in [ nodejs/build] [ ]  to request WG members are available to fix any CI issues.
163-   ``` text 
164-   Heads up of Node.js security releases Day Month Year 
165- 
166-   As per security release process this is a heads up that there will be security releases Day Month Year and we'll need people from build to lock/unlock ci and to support and build issues we see. 
167-    ``` 
85+ *  [ ]  1\.  ** Publish Pre-Release Blog Post:** 
86+   *  Publish the pre-release blog post on the ` nodejs/nodejs.org `  repository.
87+ 
88+ *  [ ]  2\.  ** Send Pre-Release Announcement:** 
89+   *  Notify the community about the upcoming security release:
90+ 
91+     *  [ ]  ` git node security --notify-pre-release ` 
92+       Except for those noted in the list below, this will create automatically the
93+       issues and emails needed for the notifications.
94+     *  [ docker-node] ( https://github.com/nodejs/docker-node/issues ) 
95+     *  [ build-wg] ( https://github.com/nodejs/build/issues ) 
96+     *  [ ]  (Not yet automatic - do this manually) [ Google Groups] ( https://groups.google.com/g/nodejs-sec ) 
97+       *  Email: notify 
< [email protected] >  98+     *  [ ]  (Not yet automatic - do this manually) Post in the nodejs-social channel
99+       in the OpenJS slack asking for amplification of the blog post.
100+ 
101+     ``` text 
102+     Security release pre-alert: 
103+ 
104+     We will release new versions of <add versions> release lines on or shortly 
105+     after Day Month Date, Year in order to address: 
106+ 
107+     * # high severity issues 
108+     * # moderate severity issues 
109+ 
110+     https://nodejs.org/en/blog/vulnerability/month-year-security-releases/ 
111+     ``` 
112+ 
113+     We specifically ask that collaborators other than the releasers and security 
114+     steward working on the security release do not tweet or publicize the release 
115+     until the tweet from Node.js goes out. We have often 
116+     seen tweets sent out before the release is 
117+     complete, which may confuse those waiting for the release and take 
118+     away from the work the releasers have put into shipping the release. 
119+ 
120+ If the security release will only contain an OpenSSL update, consider 
121+ adding the following to the pre-release announcement: 
122+ 
123+ ```text 
124+ Since this security release will only include updates for OpenSSL, if you're using 
125+ a Node.js version which is part of a distribution that uses a system 
126+ installed OpenSSL, this Node.js security update may not concern you, instead, 
127+ you may need to update your system OpenSSL libraries. Please check the 
128+ security announcements for more information. 
129+ ``` 
168130
169131## Release day  
170132
171- *  [ ]  [ Lock CI] ( https://github.com/nodejs/build/blob/HEAD/doc/jenkins-guide.md#before-the-release ) 
172- 
173- *  [ ]  The releaser(s) run the release process to completion.
174- 
175- *  [ ]  [ Unlock CI] ( https://github.com/nodejs/build/blob/HEAD/doc/jenkins-guide.md#after-the-release ) 
176- 
177- *  [ ]  Post-release announcement to Nodejs.org blog: _ ** LINK TO BLOG POST** _ 
178-   *  (Re-PR the pre-approved branch from nodejs-private/nodejs.org-private to
179-     nodejs/nodejs.org)
180- 
181- *  [ ]  Post-release announcement in reply [ email] [ ] : _ ** LINK TO EMAIL** _ 
182- 183-   *  Subject: ` Node.js security updates for all active release lines, Month Year ` 
184-   *  Body:
185-   ``` text 
186-   The Node.js project has now released new versions of all supported release lines. 
187-   For more information see: https://nodejs.org/en/blog/vulnerability/month-year-security-releases/ 
188-    ``` 
189- 
190- *  [ ]  Post in the [ nodejs-social channel] [ ] 
191-   in the OpenJS slack asking for amplification of the blog post.
192-   ``` text 
193-   Security release: 
194- 
195-   New security releases are now available for versions <add versions> of Node.js. 
196- 
197-   https://nodejs.org/en/blog/vulnerability/month-year-security-releases/ 
198-    ``` 
199- 
200- *  [ ]  Comment in [ docker-node] [ ]  issue that release is ready for integration.
201-   The docker-node team will build and release docker image updates.
202- 
203- *  [ ]  For every H1 report resolved:
204-   *  Close as Resolved
205-   *  Request Disclosure
206-   *  Request publication of [ H1 CVE requests] [ ] 
207-     *  (Check that the "Version Fixed" field in the CVE is correct, and provide
208-       links to the release blogs in the "Public Reference" section)
209-   *  In case the reporter doesn't accept the disclosure follow this process:
210-     *  Remove the original report reference within the reference text box and
133+ *  [ ]  1\.  ** Lock down the CI:** 
134+   *  Lock down the CI to prevent public access to the CI machines, ping a member of ` @nodejs/jenkins-admins ` .
135+ 
136+ *  [ ]  2\.  ** Release:** 
137+   *  Verify the CI is green on all release proposals (test-V8, CITGM, etc).
138+   *  Follow the [ release process] ( https://github.com/nodejs/node/blob/main/doc/contributing/releases.md ) .
139+ 
140+ *  [ ]  3\.  ** Unlock the CI:** 
141+   *  Unlock the CI to allow public access to the CI machines, ping a member of ` @nodejs/jenkins-admins ` .
142+ 
143+ *  [ ]  4\.  ** Publish Post-Release Blog Post:** 
144+   *  Publish the post-release blog post on the ` nodejs/nodejs.org `  repository.
145+ 
146+ *  [ ]  5\.  ** Notify the community:** 
147+   *  Notify the community that the security release has gone out:
148+     *  [ ]  Slack: ` #nodejs-social ` 
149+     *  [ ]  [ docker-node] ( https://github.com/nodejs/docker-node/issues ) 
150+     *  [ ]  [ build-wg] ( https://github.com/nodejs/build/issues ) 
151+     *  [ ]  Email: notify [ Google Groups] ( https://groups.google.com/g/nodejs-sec ) 
152+ 153+ 
154+ ## Post-Release  
155+ 
156+ *  [ ]  1\.  ** Merge the Next Security Release PR:** 
157+   *  This involves moving the ` vulnerabilities.json `  file from
158+     ` security-release/next-security-release `  to the ` security-release/YYYY-MM-DD ` 
159+     folder and merging the PR.
160+ 
161+ *  [ ]  2\.  ** Cleanup:** 
162+   *  [ ]  Close PRs and backports.
163+   *  [ ]  Close HackerOne reports:
164+     *  Close Resolved
165+     *  Request Disclosure
166+     *  Request publication of H1 CVE requests
167+     *  In case the reporter doesn't accept the disclosure follow this process:
168+       Remove the original report reference within the reference text box and
211169      insert the public URL you would like to be attached to this CVE.
212-     *  Then uncheck the Public Disclosure on HackerOne box at the bottom of the
170+        Then uncheck the Public Disclosure on HackerOne box at the bottom of the
213171      page.
214172      ![ screenshot of HackerOne CVE form] ( https://github.com/nodejs/node/assets/26234614/e22e4f33-7948-4dd2-952e-2f9166f5568d ) 
215- 
216- *  [ ]  PR machine-readable JSON descriptions of the vulnerabilities to the
217-   [ core] ( https://github.com/nodejs/security-wg/tree/HEAD/vuln/core ) 
218-   vulnerability DB. _ ** LINK TO PR** _ 
219-   *  For each vulnerability add a ` #.json `  file, one can copy an existing
220-     [ json] ( https://github.com/nodejs/security-wg/blob/0d82062d917cb9ddab88f910559469b2b13812bf/vuln/core/78.json ) 
221-     file, and increment the latest created file number and use that as the name
222-     of the new file to be added. For example, ` 79.json ` .
223- 
224- *  [ ]  Close this issue
225- 
226- *  [ ]  Make sure the PRs for the vulnerabilities are closed.
227- 
228- *  [ ]  PR in that you stewarded the release in
229-   [ Security release stewards] ( https://github.com/nodejs/node/blob/HEAD/doc/contributing/security-release-process.md#security-release-stewards ) .
230-   If necessary add the next rotation of the steward rotation.
173+   *  [ ]  PR machine-readable JSON descriptions of the vulnerabilities to the [ core] ( https://github.com/nodejs/security-wg/tree/HEAD/vuln/core ) 
174+     vulnerability DB.
175+   *  [ ]  Add yourself as a steward in the [ Security Release Stewards] ( https://github.com/nodejs/node/blob/HEAD/doc/contributing/security-release-process.md#security-release-stewards ) 
231176
232177## Adding a security revert option  
233178
@@ -298,8 +243,4 @@ The steps to correct CVE information are:
298243*  Include all the details that need updating within the form
299244*  Submit the request
300245
301- [ H1 CVE requests ] : https://hackerone.com/nodejs/cve_requests 
302- [ docker-node ] : https://github.com/nodejs/docker-node/issues 
303- [ email ] : https://groups.google.com/forum/#!forum/nodejs-sec 
304- [ nodejs-social channel ] : https://openjs-foundation.slack.com/archives/C0142A39BNE 
305- [ nodejs/build ] : https://github.com/nodejs/build/issues 
246+ [ security-release ] : https://github.com/nodejs-private/security-release 
0 commit comments