Skip to content

Latest commit

 

History

History
119 lines (96 loc) · 5.79 KB

security-release-process.md

File metadata and controls

119 lines (96 loc) · 5.79 KB

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.

  • 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 repository .
    • In the docker-node repository run the generate-stackbrew-library.sh script and replace official-images/library/node with the output generated.
      $ ./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. In addition, make sure to prefix the PR title with [security].
    • Send an email to the 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.
    • Ensure that the announced CVEs are updated in the cve-management repository as per the cve_management_process so that they are listed under Announced.
  • PR machine-readable JSON descriptions of the vulnerabilities to the 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.