mirror of
https://github.com/nodejs/node.git
synced 2025-04-30 23:56:58 +00:00

PR-URL: https://github.com/nodejs/node/pull/43774
Refs: 5a62789b81
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
198 lines
8.3 KiB
Markdown
198 lines
8.3 KiB
Markdown
# Security release process
|
|
|
|
The security release process covers the steps required to plan/implement a
|
|
security release. This document is copied into the description of the Next
|
|
Security Release and used to track progress on the release. It contains _**TEXT
|
|
LIKE THIS**_ which will be replaced during the release process with the
|
|
information described.
|
|
|
|
## Security release stewards
|
|
|
|
For each security release, a security steward will take ownership for
|
|
coordinating the steps outlined in this process. Security stewards
|
|
are nominated through an issue in the TSC repository and approved
|
|
through the regular TSC consensus process. Once approved, they
|
|
are given access to all of the resources needed to carry out the
|
|
steps listed in the process as outlined in
|
|
[security steward on/off boarding](security-steward-on-off-boarding.md).
|
|
|
|
The current security stewards are documented in the main Node.js
|
|
[README.md](https://github.com/nodejs/node#security-release-stewards).
|
|
|
|
| Company | Person | Release Date |
|
|
| ---------- | --------------- | ------------ |
|
|
| NearForm | Matteo | 2021-Oct-12 |
|
|
| Datadog | Bryan | 2022-Jan-10 |
|
|
| RH and IBM | Joe | 2022-Mar-18 |
|
|
| NearForm | Matteo / Rafael | 2022-Jul-07 |
|
|
| Datadog | Vladimir | |
|
|
| NodeSource | Juan | |
|
|
| RH and IBM | Michael | |
|
|
|
|
## Planning
|
|
|
|
* [ ] Open an [issue](https://github.com/nodejs-private/node-private) titled
|
|
`Next Security Release`, and put this checklist in the description.
|
|
|
|
* [ ] Get agreement on the list of vulnerabilities to be addressed:
|
|
* _**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):
|
|
* (Use previous PRs as templates. Don't forget to update the site banner and
|
|
the date in the slug so that it will move to the top of the blog list.)
|
|
* (Consider using a [Vulnerability Score System](https://www.first.org/cvss/calculator/3.1)
|
|
to identify severity of each report)
|
|
* [ ] pre-release: _**LINK TO PR**_
|
|
* [ ] post-release: _**LINK TO PR**_
|
|
* List vulnerabilities in order of descending severity
|
|
* 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.
|
|
```
|
|
|
|
* [ ] Get agreement on the planned date for the release: _**RELEASE DATE**_
|
|
|
|
* [ ] 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)
|
|
|
|
* [ ] Verify that GitHub Actions are working as normal: <https://www.githubstatus.com/>.
|
|
|
|
* [ ] 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
|
|
* 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.
|
|
* Described in the pre/post announcements
|
|
|
|
* [ ] 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)
|
|
|
|
If the security release will only contain an OpenSSL update consider
|
|
adding the following to the pre-release announcement:
|
|
|
|
```text
|
|
Since this security release will only include updates for OpenSSL, if you're using
|
|
a Node.js version which is part of a distribution which uses a system
|
|
installed OpenSSL, this Node.js security update might not concern you. You may
|
|
instead need to update your system OpenSSL libraries, please check the
|
|
security announcements for the distribution.
|
|
```
|
|
|
|
* [ ] Pre-release announcement [email][]: _**LINK TO EMAIL**_
|
|
* Subject: `Node.js security updates for all active release lines, Month Year`
|
|
* Body:
|
|
```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/
|
|
```
|
|
(Get access from existing manager: Matteo Collina, Rodd Vagg, Michael Dawson,
|
|
Bryan English, Vladimir de Turckheim)
|
|
|
|
* [ ] 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.
|
|
|
|
* [ ] 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:
|
|
|
|
- # high severity issues
|
|
- # moderate severity issues
|
|
|
|
https://nodejs.org/en/blog/vulnerability/month-year-security-releases/
|
|
```
|
|
|
|
* [ ] Request releaser(s) to start integrating the PRs to be released.
|
|
|
|
* [ ] Notify [docker-node][] of upcoming security release date: _**LINK**_
|
|
```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
|
|
```
|
|
|
|
* [ ] 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.
|
|
```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.
|
|
```
|
|
|
|
## Release day
|
|
|
|
* [ ] [Lock CI](https://github.com/nodejs/build/blob/HEAD/doc/jenkins-guide.md#before-the-release)
|
|
|
|
* [ ] The releaser(s) run the release process to completion.
|
|
|
|
* [ ] [Unlock CI](https://github.com/nodejs/build/blob/HEAD/doc/jenkins-guide.md#after-the-release)
|
|
|
|
* [ ] 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)
|
|
|
|
* [ ] Post-release announcement in reply [email][]: _**LINK TO EMAIL**_
|
|
* CC: `oss-security@lists.openwall.com`
|
|
* Subject: `Node.js security updates for all active release lines, Month Year`
|
|
* Body:
|
|
```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/
|
|
```
|
|
|
|
* [ ] Create a new issue in [nodejs/tweet][]
|
|
```text
|
|
Security release:
|
|
|
|
New security releases are now available for versions <add versions> of Node.js.
|
|
|
|
https://nodejs.org/en/blog/vulnerability/month-year-security-releases/
|
|
```
|
|
|
|
* [ ] 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)
|
|
|
|
* [ ] PR machine-readable JSON descriptions of the vulnerabilities to the
|
|
[core](https://github.com/nodejs/security-wg/tree/HEAD/vuln/core)
|
|
vulnerability DB. _**LINK TO PR**_
|
|
* 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`.
|
|
|
|
* [ ] Close this issue
|
|
|
|
* [ ] Make sure the PRs for the vulnerabilities are closed.
|
|
|
|
* [ ] PR in that you stewarded the release in
|
|
[Security release stewards](https://github.com/nodejs/node/blob/HEAD/doc/contributing/security-release-process.md#security-release-stewards).
|
|
If necessary add the next rotation of the steward rotation.
|
|
|
|
[H1 CVE requests]: https://hackerone.com/nodejs/cve_requests
|
|
[docker-node]: https://github.com/nodejs/docker-node/issues
|
|
[email]: https://groups.google.com/forum/#!forum/nodejs-sec
|
|
[nodejs/build]: https://github.com/nodejs/build/issues
|
|
[nodejs/tweet]: https://github.com/nodejs/tweet/issues
|