diff --git a/doc/contributing/security-release-process.md b/doc/contributing/security-release-process.md
index 7444707774f..e0c4ffab560 100644
--- a/doc/contributing/security-release-process.md
+++ b/doc/contributing/security-release-process.md
@@ -79,6 +79,13 @@ The current security stewards are documented in the main Node.js
* Make sure to have a green CI before requesting a CVE.
* Check if there is a need to issue a CVE for any version that became
EOL after the last security release through [this issue](https://github.com/nodejs/security-wg/issues/1419).
+ * If `cve_source: openjs-cna` is set in `.ncurc`, the CVE ids are reserved
+ through the [OpenJS Foundation CNA][] instead of HackerOne. The HackerOne
+ report is updated with the id either way. On a supervised bucket the
+ reservation waits for a CNA coordinator; the command saves the pending
+ request in `vulnerabilities.json` and can be re-run to resume it.
+ Publication to MITRE then happens from the [security-release][]
+ repository, see [Post-Release](#post-release).
* [ ] 5\. **Choosing or Updating Release Date:**
* Get agreement on the planned date for the release.
@@ -177,7 +184,8 @@ security announcements for more information.
* Close HackerOne reports:
* Close Resolved
* Request Disclosure
- * Request publication of H1 CVE requests
+ * Request publication of H1 CVE requests _(skip when the CVEs were
+ reserved through the OpenJS Foundation CNA, see the next step)_
* In case the reporter doesn't accept the disclosure follow this process:
Remove the original report reference within the reference text box and
insert the public URL you would like to be attached to this CVE.
@@ -188,6 +196,22 @@ security announcements for more information.
vulnerability DB.
* [ ] Add yourself as a steward in the [Security Release Stewards](https://github.com/nodejs/node/blob/HEAD/doc/contributing/security-release-process.md#security-release-stewards)
+* [ ] 2\. **Publish CVEs to MITRE (OpenJS Foundation CNA path only):**
+ * Skip this step if `cve_source` is `hackerone` (the default): HackerOne
+ publishes to MITRE automatically during disclosure.
+ * Merging the security release pull request in the [security-release][]
+ repository triggers its `Publish CVEs` workflow. It publishes every
+ reserved CVE listed in `vulnerabilities.json` through the OpenJS
+ Foundation CNA. Nothing has to be run by hand.
+ * The workflow refuses to publish until every patched version is available
+ on , so do not expect records before the
+ release is out, and do not merge the pull request earlier than usual.
+ * [ ] Check the workflow run summary. A failed run opens an issue in the
+ `security-release` repository assigned to the CNA coordinator and to the
+ person who merged, with the per-CVE details to forward to the OpenJS CNA.
+ * Records appear on about 15 minutes after a
+ successful run.
+
## Adding a security revert option
Breaking changes are allowed in existing LTS lines in order to fix
@@ -248,7 +272,7 @@ then we later change the `fixed in` value for the CVE.
### Updating CVEs
-The steps to correct CVE information are:
+For CVEs issued by HackerOne, the steps to correct CVE information are:
* Go to the “CVE IDs” section in your program
sections ()
@@ -257,4 +281,9 @@ The steps to correct CVE information are:
* Include all the details that need updating within the form
* Submit the request
+For CVEs issued by the OpenJS Foundation CNA, fix `vulnerabilities.json` in
+the [security-release][] repository and ask the OpenJS CNA coordinators to
+update the record. Automatic updates are planned, see the repository README.
+
+[OpenJS Foundation CNA]: https://github.com/openjs-foundation/security-advisories
[security-release]: https://github.com/nodejs-private/security-release