2020-09-11 05:50:33 -07:00
# Security release process
2019-09-23 16:28:23 -07:00
2019-12-16 16:38:27 -05:00
The security release process covers the steps required to plan/implement a
security release. This document is copied into the description of the Next
2020-09-11 05:50:33 -07:00
Security Release and used to track progress on the release. It contains ** *TEXT
2020-02-07 11:10:27 -08:00
LIKE THIS*** which will be replaced during the release process with the
information described.
2019-09-23 16:28:23 -07:00
## Planning
2020-02-07 11:10:27 -08:00
* [ ] Open an [issue ](https://github.com/nodejs-private/node-private ) titled
`Next Security Release` , and put this checklist in the description.
2019-09-23 16:28:23 -07:00
2019-12-16 16:38:27 -05:00
* [ ] Get agreement on the list of vulnerabilities to be addressed:
2020-02-07 11:10:27 -08:00
* ***H1 REPORT LINK***: ** *DESCRIPTION*** (***CVE or H1 CVE request link***)
* v10.x, v12.x: ** *LINK to PR URL***
* ...
* [ ] PR release announcements in [private ](https://github.com/nodejs-private/nodejs.org-private ):
2020-09-11 05:50:33 -07:00
* (Use previous PRs as templates. Don't forget to update the site banner and
2020-02-07 11:10:27 -08:00
the date in the slug so that it will move to the top of the blog list.)
* [ ] pre-release: ** *LINK TO PR***
* [ ] post-release: ** *LINK TO PR***
2021-07-30 09:23:18 +02:00
* Ask the HackerOne reporter if they would like to be credited on the
security release blog page:
```text
Thank you to < name > for reporting this vulnerability.
```
2019-09-23 16:28:23 -07:00
2019-12-16 16:38:27 -05:00
* [ ] Get agreement on the planned date for the release: ** *RELEASE DATE***
2019-09-23 16:28:23 -07:00
2020-02-07 11:10:27 -08:00
* [ ] Get release team volunteers for all affected lines:
* v12.x: ** *NAME of RELEASER(S)***
* ... other lines, if multiple releasers
## Announcement (one week in advance of the planned release)
2019-09-23 16:28:23 -07:00
2021-10-05 17:18:44 +02:00
* [ ] Verify that GitHub Actions are working as normal: < https: // www . githubstatus . com /> .
2020-02-07 11:10:27 -08:00
* [ ] Check that all vulnerabilities are ready for release integration:
* PRs against all affected release lines or cherry-pick clean
* Approved
* Pass `make test`
* Have CVEs
2021-08-23 08:23:44 +02:00
* Make sure that dependent libraries have CVEs for their issues. We should
only create CVEs for vulnerabilities in Node.js itself. This is to avoid
having duplicate CVEs for the same vulnerability.
2020-02-07 11:10:27 -08:00
* Described in the pre/post announcements
2019-09-23 16:28:23 -07:00
2020-02-07 11:10:27 -08:00
* [ ] Pre-release announcement [email][]: ** *LINK TO EMAIL***
2021-06-29 08:11:44 +02:00
* Subject: `Node.js security updates for all active release lines, Month Year`
* Body:
2021-04-19 05:50:21 +02:00
```text
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
For more information see: https://nodejs.org/en/blog/vulnerability/month-year-security-releases/
```
2020-02-07 11:10:27 -08:00
(Get access from existing manager: Ben Noordhuis, Rod Vagg, Michael Dawson)
2019-09-23 16:28:23 -07:00
2021-08-05 15:16:24 -04:00
* [ ] CC `oss-security@lists.openwall.com` on pre-release
The google groups UI does not support adding a CC, until we figure
out a better way, forward the email you receive to
`oss-security@lists.openwall.com` as a CC.
2020-02-07 11:10:27 -08:00
* [ ] Pre-release announcement to nodejs.org blog: ** *LINK TO BLOG***
(Re-PR the pre-approved branch from nodejs-private/nodejs.org-private to
nodejs/nodejs.org)
2019-09-23 16:28:23 -07:00
2021-08-30 08:23:48 +02:00
* [ ] Create a new issue in [nodejs/tweet][]
```text
Security release pre-alert:
We will release new versions of < add versions > release lines on or shortly
after Day Month Date, Year in order to address:
2020-09-08 17:15:31 -04:00
2021-08-30 08:23:48 +02:00
- # high severity issues
- # moderate severity issues
https://nodejs.org/en/blog/vulnerability/month-year-security-releases/
```
2020-02-07 11:10:27 -08:00
* [ ] Request releaser(s) to start integrating the PRs to be released.
* [ ] Notify [docker-node][] of upcoming security release date: ** *LINK***
2021-07-01 10:08:01 +02:00
```text
Heads up of Node.js security releases Day Month Year
As per the Node.js security release process this is the FYI that there is going to be a security release Day Month Year
```
2020-02-07 11:10:27 -08:00
* [ ] Notify build-wg of upcoming security release date by opening an issue
in [nodejs/build][] to request WG members are available to fix any CI issues.
2021-07-01 10:08:01 +02:00
```text
Heads up of Node.js security releases Day Month Year
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.
```
2019-09-23 16:28:23 -07:00
2019-12-16 16:38:27 -05:00
## Release day
2019-09-23 16:28:23 -07:00
2021-02-17 14:49:52 -05:00
* [ ] [Lock CI ](https://github.com/nodejs/build/blob/HEAD/doc/jenkins-guide.md#before-the-release )
2020-02-07 11:10:27 -08:00
2019-12-16 16:38:27 -05:00
* [ ] The releaser(s) run the release process to completion.
2019-09-23 16:28:23 -07:00
2021-02-17 14:49:52 -05:00
* [ ] [Unlock CI ](https://github.com/nodejs/build/blob/HEAD/doc/jenkins-guide.md#after-the-release )
2020-02-07 11:10:27 -08:00
* [ ] Post-release announcement in reply [email][]: ** *LINK TO EMAIL***
2021-06-29 08:11:44 +02:00
* CC: `oss-security@lists.openwall.com`
* Subject: `Node.js security updates for all active release lines, Month Year`
* Body:
2021-04-19 05:50:21 +02:00
```text
The Node.js project has now released new versions of all supported release lines.
For more information see: https://nodejs.org/en/blog/vulnerability/month-year-security-releases/
```
2020-02-07 11:10:27 -08:00
* [ ] Post-release announcement to Nodejs.org blog: ** *LINK TO BLOG POST***
* (Re-PR the pre-approved branch from nodejs-private/nodejs.org-private to
nodejs/nodejs.org)
2021-08-30 08:23:48 +02:00
* [ ] Create a new issue in [nodejs/tweet][]
```text
Security release:
New security releases are now available for versions < add versions > of Node.js.
2020-02-07 11:10:27 -08:00
2021-08-30 08:23:48 +02:00
https://nodejs.org/en/blog/vulnerability/month-year-security-releases/
```
2020-02-07 11:10:27 -08:00
* [ ] Comment in [docker-node][] issue that release is ready for integration.
The docker-node team will build and release docker image updates.
* [ ] For every H1 report resolved:
* Close as Resolved
* Request Disclosure
* Request publication of [H1 CVE requests][]
* (Check that the "Version Fixed" field in the CVE is correct, and provide
links to the release blogs in the "Public Reference" section)
2019-09-23 16:28:23 -07:00
* [ ] PR machine-readable JSON descriptions of the vulnerabilities to the
2021-02-17 14:49:52 -05:00
[core ](https://github.com/nodejs/security-wg/tree/HEAD/vuln/core )
2019-12-16 16:38:27 -05:00
vulnerability DB. ** *LINK TO PR***
2021-07-01 15:41:15 +02:00
* For each vulnerability add a `#.json` file, one can copy an existing
[json ](https://github.com/nodejs/security-wg/blob/0d82062d917cb9ddab88f910559469b2b13812bf/vuln/core/78.json )
file, and increment the latest created file number and use that as the name
of the new file to be added. For example, `79.json` .
2019-09-23 16:28:23 -07:00
2020-02-07 11:10:27 -08:00
* [ ] Close this issue
2019-09-23 16:28:23 -07:00
* [ ] Make sure the PRs for the vulnerabilities are closed.
2020-02-07 11:10:27 -08:00
[H1 CVE requests]: https://hackerone.com/nodejs/cve_requests
2020-04-05 23:26:24 -04:00
[docker-node]: https://github.com/nodejs/docker-node/issues
2020-02-07 11:10:27 -08:00
[email]: https://groups.google.com/forum/#!forum/nodejs-sec
2020-09-11 05:50:33 -07:00
[nodejs/build]: https://github.com/nodejs/build/issues
2021-08-30 08:23:48 +02:00
[nodejs/tweet]: https://github.com/nodejs/tweet/issues