|
1 | 1 | # Security Release Process |
2 | 2 |
|
3 | | -The security release process covers the steps required to plan/implement |
4 | | -a security release. |
| 3 | +The security release process covers the steps required to plan/implement a |
| 4 | +security release. This document is copied into the description of the Next |
| 5 | +Security Release, and used to track progess on the release. It contains |
| 6 | +***TEXT LIKE THIS*** which will be replaced during the release process with |
| 7 | +the information described. |
5 | 8 |
|
6 | 9 | ## Planning |
7 | 10 |
|
8 | 11 | * [ ] Open an issue in the private security repo titled `Next Security Release` |
9 | | - and add the planning checklist to the description. |
| 12 | + and add this planning checklist to the description. |
10 | 13 |
|
11 | | -* [ ] Get agreement on the list of vulnerabilities to be addressed. |
| 14 | +* [ ] Get agreement on the list of vulnerabilities to be addressed: |
| 15 | + * ***LINKS TO VULNS...*** |
12 | 16 |
|
13 | | -* [ ] Get agreement on the planned date for the releases. |
| 17 | +* [ ] Get agreement on the planned date for the release: ***RELEASE DATE*** |
14 | 18 |
|
15 | | -* [ ] Once agreement on the list and date has been agreed, validate that all |
16 | | - vulnerabilities have been assigned a CVE following the |
17 | | - [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md). |
| 19 | +* [ ] Validate that all vulnerabilities have been assigned a CVE. Upstream deps |
| 20 | + such as OpenSSL and NPM will have CVEs, issues reported on H1 may have CVEs, |
| 21 | + otherwise allocate them by following the |
| 22 | + [cve_management_process](https://github.com/nodejs/node/blob/master/doc/guides/cve_management_process.md). |
18 | 23 |
|
19 | 24 | * [ ] Co-ordinate with the Release team members to line up one or more releasers |
20 | | - to do the releases on the agreed date. |
| 25 | + to do the releases on the agreed date. Releaser: ***NAME of RELEASER(S)*** |
21 | 26 |
|
22 | | -* [ ] Prep for the pre-security announcement and final security announcement by |
23 | | - getting agreement on drafts following the |
24 | | - [security_announcement_process](https://github.com/nodejs/security-wg/blob/master/processes/security_annoucement_process.md). |
| 27 | +* [ ] Prep for the security announcements by getting agreement on drafts (use |
| 28 | + previously announced releases as the template): |
| 29 | + * pre-release: ***LINK TO COMMENT ON THIS ISSUE CONTAINING DRAFT*** |
| 30 | + * post-release: ***LINK TO COMMENT ON THIS ISSUE CONTAINING DRAFT*** |
25 | 31 |
|
26 | 32 | ## Announcement (one week in advance of the planned release) |
27 | 33 |
|
28 | | -* [ ] Ensure the pre-announce is sent out as outlined in the |
29 | | - [security_announcement_process](https://github.com/nodejs/security-wg/blob/master/processes/security_annoucement_process.md). |
| 34 | +* Send pre-release announcement to |
| 35 | + https://groups.google.com/forum/#!forum/nodejs-sec. |
| 36 | + One of the existing managers can give access (Ben |
| 37 | + Noordhuis, Rod Vagg, Michael Dawson). ***LINK TO EMAIL*** |
| 38 | + |
| 39 | +* Post pre-release announcement in vulnerabilities section of Nodejs.org blog |
| 40 | + (https://github.com/nodejs/nodejs.org/tree/master/locale/en/blog/vulnerability). |
| 41 | + Use last pre-release announcement as a template (it includes blog metadata |
| 42 | + such as updates to the banner on the Node.js website to indicate security |
| 43 | + releases are coming). Submit PR and leave 1 hour for review. After one hour |
| 44 | + even if no reviews, land anyway so that we don't have too big a gap between |
| 45 | + post to nodejs-sec and blog. Text was already reviewed in security repo so is |
| 46 | + unlikely to attract much additional comment. ***LINK TO BLOG PR AND POST*** |
30 | 47 |
|
31 | 48 | * [ ] Open an issue in the build working repository with a notification of the |
32 | 49 | date for the security release. Use this issue to co-ordinate with the build |
33 | 50 | team to ensure there will be coverage/availability of build team resources the |
34 | 51 | day of the release. Those who volunteer from the build WG should be available |
35 | | - in node-build during the release in case they are needed by the individual |
36 | | - doing the release. |
| 52 | + in node/build during the release in case they are needed by the individual |
| 53 | + doing the release. ***LINK TO BUILD ISSUE*** |
37 | 54 |
|
38 | | -* [ ] Send an email to the docker official image |
39 | | - [maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS) |
40 | | - with an FYI that security releases will be going out on the agreed date. |
| 55 | +## Release day |
41 | 56 |
|
42 | | -* [ ] Open an issue in the [docker-node](https://github.com/nodejs/docker-node) |
43 | | - repo and get one or more volunteers to be available to review the PR to update |
44 | | - Node.js versions in the docker-node repo immediately after the release. |
| 57 | +* [ ] The releaser(s) run the release process to completion. |
45 | 58 |
|
46 | | -* [ ] Call on the sec release volunteer(s) to start integrating the PRs, running |
47 | | - the CI jobs, and generally prepping the release. |
| 59 | +* [ ] Send post-release announcement as a reply to the |
| 60 | + original message in https://groups.google.com/forum/#!forum/nodejs-sec |
| 61 | + ***LINK TO EMAIL*** |
48 | 62 |
|
49 | | -## Release day |
| 63 | +* [ ] Update the blog post in |
| 64 | + https://github.com/nodejs/nodejs.org/tree/master/locale/en/blog/vulnerability |
| 65 | + with the information that releases are available and the full |
| 66 | + vulnerability details. Keep the original blog content at the |
| 67 | + bottom of the blog. Use this as an example: |
| 68 | + https://github.com/nodejs/nodejs.org/blob/master/locale/en/blog/vulnerability/june-2016-security-releases.md. |
| 69 | + Make sure to update the date in the slug so that it will move to |
| 70 | + the top of the blog list, and not that it updates the |
| 71 | + banner on Node.js org to indicate the security release(s) are |
| 72 | + available. ***LINK TO PR*** |
50 | 73 |
|
51 | | -* [ ] Co-ordinate with the Release team members and keep up to date on progress. |
52 | | - Get an guesstimate of when releases may be ready and send an FYI to the docker |
53 | | - official image |
54 | | - [maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS). |
| 74 | + *Note*: If the release blog obviously points to the people having caused the |
| 75 | + issue (for example when explicitly mentioning reverting a commit), adding |
| 76 | + those people as a CC on the PR for the blog post to give them a heads up |
| 77 | + might be appropriate. |
55 | 78 |
|
56 | | -* [ ] When the releases are promoted, ensure the final announce goes out as per |
57 | | - the |
58 | | - [security_announcement_process](https://github.com/nodejs/security-wg/blob/master/processes/security_annoucement_process.md). |
| 79 | +* [ ] Email foundation contact to tweet out nodejs-sec announcement from |
| 80 | + foundation twitter account. FIXME - who is this contact? |
59 | 81 |
|
60 | 82 | * [ ] Create a PR to update the Node.js version in the official docker images. |
61 | 83 | * Checkout the docker-node repo. |
@@ -81,19 +103,19 @@ a security release. |
81 | 103 | [maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS) |
82 | 104 | indicating that the PR is open. |
83 | 105 |
|
84 | | -* [ ] Ensure that the announced CVEs are reported to Mitre as per the |
85 | | - [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md). |
86 | | - |
87 | | -* [ ] Ensure that the announced CVEs are updated in the cve-management |
88 | | - repository as per the |
89 | | - [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md) |
90 | | - so that they are listed under Announced. |
| 106 | +* [ ] If we allocated CVES: |
| 107 | + * [ ] Ensure that the announced CVEs are reported to Mitre as per the |
| 108 | + [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md). |
| 109 | + * [ ] Ensure that the announced CVEs are updated in the cve-management |
| 110 | + repository as per the |
| 111 | + [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md) |
| 112 | + so that they are listed under Announced. |
91 | 113 |
|
92 | 114 | * [ ] PR machine-readable JSON descriptions of the vulnerabilities to the |
93 | 115 | [core](https://github.com/nodejs/security-wg/tree/master/vuln/core) |
94 | | - vulnerability DB. |
| 116 | + vulnerability DB. ***LINK TO PR*** |
95 | 117 |
|
96 | 118 | * [ ] Make sure the PRs for the vulnerabilities are closed. |
97 | 119 |
|
98 | | -* [ ] Ensure the issue in the private security repo for the release is closed |
| 120 | +* [ ] Ensure this issue in the private security repo for the release is closed |
99 | 121 | out. |