|
2 | 2 |
|
3 | 3 | The security release process covers the steps required to plan/implement a
|
4 | 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 | +Security Release, and used to track progess on the release. It contains ***TEXT |
| 6 | +LIKE THIS*** which will be replaced during the release process with the |
| 7 | +information described. |
8 | 8 |
|
9 | 9 | ## Planning
|
10 | 10 |
|
11 |
| -* [ ] Open an issue in the private security repo titled `Next Security Release` |
12 |
| - and add this planning checklist to the description. |
| 11 | +* [ ] Open an [issue](https://github.com/nodejs-private/node-private) titled |
| 12 | + `Next Security Release`, and put this checklist in the description. |
13 | 13 |
|
14 | 14 | * [ ] Get agreement on the list of vulnerabilities to be addressed:
|
15 |
| - * ***LINKS TO VULNS...*** |
| 15 | + * ***H1 REPORT LINK***: ***DESCRIPTION*** (***CVE or H1 CVE request link***) |
| 16 | + * v10.x, v12.x: ***LINK to PR URL*** |
| 17 | + * ... |
| 18 | + |
| 19 | +* [ ] PR release announcements in [private](https://github.com/nodejs-private/nodejs.org-private): |
| 20 | + * (Use previous PRs as templates, don't forget to update the site banner, and |
| 21 | + the date in the slug so that it will move to the top of the blog list.) |
| 22 | + * [ ] pre-release: ***LINK TO PR*** |
| 23 | + * [ ] post-release: ***LINK TO PR*** |
16 | 24 |
|
17 | 25 | * [ ] Get agreement on the planned date for the release: ***RELEASE DATE***
|
18 | 26 |
|
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). |
| 27 | +* [ ] Get release team volunteers for all affected lines: |
| 28 | + * v12.x: ***NAME of RELEASER(S)*** |
| 29 | + * ... other lines, if multiple releasers |
| 30 | + |
| 31 | +## Announcement (one week in advance of the planned release) |
23 | 32 |
|
24 |
| -* [ ] Co-ordinate with the Release team members to line up one or more releasers |
25 |
| - to do the releases on the agreed date. Releaser: ***NAME of RELEASER(S)*** |
| 33 | +* [ ] Check that all vulnerabilities are ready for release integration: |
| 34 | + * PRs against all affected release lines or cherry-pick clean |
| 35 | + * Approved |
| 36 | + * Pass `make test` |
| 37 | + * Have CVEs |
| 38 | + * Described in the pre/post announcements |
26 | 39 |
|
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*** |
| 40 | +* [ ] Pre-release announcement [email][]: ***LINK TO EMAIL*** |
| 41 | + (Get access from existing manager: Ben Noordhuis, Rod Vagg, Michael Dawson) |
31 | 42 |
|
32 |
| -## Announcement (one week in advance of the planned release) |
| 43 | +* [ ] Pre-release announcement to nodejs.org blog: ***LINK TO BLOG*** |
| 44 | + (Re-PR the pre-approved branch from nodejs-private/nodejs.org-private to |
| 45 | + nodejs/nodejs.org) |
33 | 46 |
|
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 |
40 |
| - blog (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 land immediately. Text was already |
44 |
| - reviewed in security repo. ***LINK TO BLOG PR AND POST*** |
45 |
| - |
46 |
| -* [ ] Open an issue in the build working repository with a notification of the |
47 |
| - date for the security release. Use this issue to co-ordinate with the build |
48 |
| - team to ensure there will be coverage/availability of build team resources the |
49 |
| - day of the release. Those who volunteer from the build WG should be available |
50 |
| - in node/build during the release in case they are needed by the individual |
51 |
| - doing the release. ***LINK TO BUILD ISSUE*** |
| 47 | +* [ ] Request releaser(s) to start integrating the PRs to be released. |
| 48 | + |
| 49 | +* [ ] Notify [docker-node][] of upcoming security release date: ***LINK*** |
| 50 | + |
| 51 | +* [ ] Notify build-wg of upcoming security release date by opening an issue |
| 52 | + in [nodejs/build][] to request WG members are available to fix any CI issues. |
52 | 53 |
|
53 | 54 | ## Release day
|
54 | 55 |
|
| 56 | +* [ ] [Lock CI](https://github.com/nodejs/build/blob/master/doc/jenkins-guide.md#before-the-release) |
| 57 | + |
55 | 58 | * [ ] The releaser(s) run the release process to completion.
|
56 | 59 |
|
57 |
| -* [ ] Send post-release announcement as a reply to the |
58 |
| - original message in https://groups.google.com/forum/#!forum/nodejs-sec |
59 |
| - ***LINK TO EMAIL*** |
60 |
| - |
61 |
| -* [ ] Update the blog post in |
62 |
| - https://github.com/nodejs/nodejs.org/tree/master/locale/en/blog/vulnerability |
63 |
| - with the information that releases are available and the full |
64 |
| - vulnerability details. Keep the original blog content at the |
65 |
| - bottom of the blog. Use this as an example: |
66 |
| - https://github.com/nodejs/nodejs.org/blob/master/locale/en/blog/vulnerability/june-2016-security-releases.md. |
67 |
| - Make sure to update the date in the slug so that it will move to |
68 |
| - the top of the blog list, and not that it updates the |
69 |
| - banner on Node.js org to indicate the security release(s) are |
70 |
| - available. ***LINK TO PR*** |
71 |
| - |
72 |
| - *Note*: If the release blog obviously points to the people having caused the |
73 |
| - issue (for example when explicitly mentioning reverting a commit), adding |
74 |
| - those people as a CC on the PR for the blog post to give them a heads up |
75 |
| - might be appropriate. |
76 |
| - |
77 |
| -* [ ] Email foundation contact to tweet out nodejs-sec announcement from |
78 |
| - foundation twitter account. FIXME - who is this contact? |
79 |
| - |
80 |
| -* [ ] Create a PR to update the Node.js version in the official docker images. |
81 |
| - * Checkout the docker-node repo. |
82 |
| - * Run the update.sh using the `-s` option so that ONLY the Node.js |
83 |
| - versions are updated. At the request from docker (and because |
84 |
| - it is good practice) we limit the changes to those necessary in |
85 |
| - security updates. |
86 |
| - * Open a PR and get volunteer lined up earlier to approve. |
87 |
| - * Merge the PR with the merge button. |
88 |
| - * Checkout the [official-images](https://github.com/docker-library/official-images) |
89 |
| - repository . |
90 |
| - * In the docker-node repository run the |
91 |
| - [generate-stackbrew-library.sh]( https://github.com/nodejs/docker-node/blob/master/generate-stackbrew-library.sh) |
92 |
| - script and replace official-images/library/node with the output generated. |
93 |
| - ```console |
94 |
| - $ ./generate-stackbrew-library.sh > .../official-images/library/node |
95 |
| - ``` |
96 |
| - * Open a PR with the changes to official-images/library/node making sure to |
97 |
| - @mention the official images. |
98 |
| - [maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS). |
99 |
| - In addition, make sure to prefix the PR title with `[security]`. |
100 |
| - * Send an email to the |
101 |
| - [maintainers](https://github.com/docker-library/official-images/blob/master/MAINTAINERS) |
102 |
| - indicating that the PR is open. |
103 |
| - |
104 |
| -* [ ] If we allocated CVES: |
105 |
| - * [ ] Ensure that the announced CVEs are reported to Mitre as per the |
106 |
| - [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md). |
107 |
| - * [ ] Ensure that the announced CVEs are updated in the cve-management |
108 |
| - repository as per the |
109 |
| - [cve_management_process](https://github.com/nodejs/security-wg/blob/master/processes/cve_management_process.md) |
110 |
| - so that they are listed under Announced. |
| 60 | +* [ ] [Unlock CI](https://github.com/nodejs/build/blob/master/doc/jenkins-guide.md#after-the-release) |
| 61 | + |
| 62 | +* [ ] Post-release announcement in reply [email][]: ***LINK TO EMAIL*** |
| 63 | + |
| 64 | +* [ ] Post-release announcement to Nodejs.org blog: ***LINK TO BLOG POST*** |
| 65 | + * (Re-PR the pre-approved branch from nodejs-private/nodejs.org-private to |
| 66 | + nodejs/nodejs.org) |
| 67 | + |
| 68 | +* [ ] Email `"Rachel Romoff" <rromoff@linuxfoundation.org>` to tweet an |
| 69 | + announcement, or if you are on twitter you can just direct message the |
| 70 | + `@nodejs` handle. |
| 71 | + |
| 72 | +* [ ] Comment in [docker-node][] issue that release is ready for integration. |
| 73 | + The docker-node team will build and release docker image updates. |
| 74 | + |
| 75 | +* [ ] For every H1 report resolved: |
| 76 | + * Close as Resolved |
| 77 | + * Request Disclosure |
| 78 | + * Request publication of [H1 CVE requests][] |
| 79 | + * (Check that the "Version Fixed" field in the CVE is correct, and provide |
| 80 | + links to the release blogs in the "Public Reference" section) |
111 | 81 |
|
112 | 82 | * [ ] PR machine-readable JSON descriptions of the vulnerabilities to the
|
113 | 83 | [core](https://github.com/nodejs/security-wg/tree/master/vuln/core)
|
114 | 84 | vulnerability DB. ***LINK TO PR***
|
115 | 85 |
|
| 86 | +* [ ] Close this issue |
| 87 | + |
116 | 88 | * [ ] Make sure the PRs for the vulnerabilities are closed.
|
117 | 89 |
|
118 |
| -* [ ] Ensure this issue in the private security repo for the release is closed |
119 |
| - out. |
| 90 | +[H1 CVE requests]: https://hackerone.com/nodejs/cve_requests |
| 91 | +[docker-node]: https://github.com/nodejs/docker-node/issues) |
| 92 | +[nodejs/build]: https://github.com/nodejs/build/issues) |
| 93 | +[email]: https://groups.google.com/forum/#!forum/nodejs-sec |
0 commit comments