0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/doc/guides/security_release_process.md
Sam Roberts 38aa31554c doc: simultaneous blog and email of sec announce
PR-URL: https://github.com/nodejs/node/pull/31483
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2020-01-30 14:52:56 -08:00

120 lines
5.8 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 progess on the release. It contains
***TEXT LIKE THIS*** which will be replaced during the release process with
the information described.
## Planning
* [ ] Open an issue in the private security repo titled `Next Security Release`
and add this planning checklist to the description.
* [ ] Get agreement on the list of vulnerabilities to be addressed:
* ***LINKS TO VULNS...***
* [ ] Get agreement on the planned date for the release: ***RELEASE DATE***
* [ ] Validate that all vulnerabilities have been assigned a CVE. Upstream deps
such as OpenSSL and NPM will have CVEs, issues reported on H1 may have CVEs,
otherwise allocate them by following the
[cve_management_process](https://github.com/nodejs/node/blob/master/doc/guides/cve_management_process.md).
* [ ] Co-ordinate with the Release team members to line up one or more releasers
to do the releases on the agreed date. Releaser: ***NAME of RELEASER(S)***
* [ ] Prep for the security announcements by getting agreement on drafts (use
previously announced releases as the template):
* pre-release: ***LINK TO COMMENT ON THIS ISSUE CONTAINING DRAFT***
* post-release: ***LINK TO COMMENT ON THIS ISSUE CONTAINING DRAFT***
## Announcement (one week in advance of the planned release)
* [ ] Send pre-release announcement to
https://groups.google.com/forum/#!forum/nodejs-sec.
One of the existing managers can give access (Ben
Noordhuis, Rod Vagg, Michael Dawson). ***LINK TO EMAIL***
* [ ] Post pre-release announcement in vulnerabilities section of Nodejs.org
blog (https://github.com/nodejs/nodejs.org/tree/master/locale/en/blog/vulnerability).
Use last pre-release announcement as a template (it includes blog metadata
such as updates to the banner on the Node.js website to indicate security
releases are coming). Submit PR and land immediately. Text was already
reviewed in security repo. ***LINK TO BLOG PR AND POST***
* [ ] Open an issue in the build working repository with a notification of the
date for the security release. Use this issue to co-ordinate with the build
team to ensure there will be coverage/availability of build team resources the
day of the release. Those who volunteer from the build WG should be available
in node/build during the release in case they are needed by the individual
doing the release. ***LINK TO BUILD ISSUE***
## Release day
* [ ] The releaser(s) run the release process to completion.
* [ ] Send post-release announcement as a reply to the
original message in https://groups.google.com/forum/#!forum/nodejs-sec
***LINK TO EMAIL***
* [ ] Update the blog post in
https://github.com/nodejs/nodejs.org/tree/master/locale/en/blog/vulnerability
with the information that releases are available and the full
vulnerability details. Keep the original blog content at the
bottom of the blog. Use this as an example:
https://github.com/nodejs/nodejs.org/blob/master/locale/en/blog/vulnerability/june-2016-security-releases.md.
Make sure to update the date in the slug so that it will move to
the top of the blog list, and not that it updates the
banner on Node.js org to indicate the security release(s) are
available. ***LINK TO PR***
*Note*: If the release blog obviously points to the people having caused the
issue (for example when explicitly mentioning reverting a commit), adding
those people as a CC on the PR for the blog post to give them a heads up
might be appropriate.
* [ ] Email foundation contact to tweet out nodejs-sec announcement from
foundation twitter account. FIXME - who is this contact?
* [ ] Create a PR to update the Node.js version in the official docker images.
* Checkout the docker-node repo.
* Run the update.sh using the `-s` option so that ONLY the Node.js
versions are updated. At the request from docker (and because
it is good practice) we limit the changes to those necessary in
security updates.
* Open a PR and get volunteer lined up earlier to approve.
* Merge the PR with the merge button.
* Checkout the [official-images](https://github.com/docker-library/official-images)
repository .
* In the docker-node repository run the
[generate-stackbrew-library.sh]( https://github.com/nodejs/docker-node/blob/master/generate-stackbrew-library.sh)
script and replace official-images/library/node with the output generated.
```console
$ ./generate-stackbrew-library.sh > .../official-images/library/node
```
* Open a PR with the changes to official-images/library/node making sure to
@mention the official images.
[maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS).
In addition, make sure to prefix the PR title with `[security]`.
* Send an email to the
[maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS)
indicating that the PR is open.
* [ ] If we allocated CVES:
* [ ] Ensure that the announced CVEs are reported to Mitre as per the
[cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md).
* [ ] Ensure that the announced CVEs are updated in the cve-management
repository as per the
[cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md)
so that they are listed under Announced.
* [ ] PR machine-readable JSON descriptions of the vulnerabilities to the
[core](https://github.com/nodejs/security-wg/tree/master/vuln/core)
vulnerability DB. ***LINK TO PR***
* [ ] Make sure the PRs for the vulnerabilities are closed.
* [ ] Ensure this issue in the private security repo for the release is closed
out.