Skip to content

Support OpenJS Foundation CNA as CVE source#1093

Draft
UlisesGascon wants to merge 1 commit into
nodejs:mainfrom
UlisesGascon:support-openjs-cna
Draft

Support OpenJS Foundation CNA as CVE source#1093
UlisesGascon wants to merge 1 commit into
nodejs:mainfrom
UlisesGascon:support-openjs-cna

Conversation

@UlisesGascon

Copy link
Copy Markdown
Member

HackerOne acts as Node.js' CNA today via /cve_requests. The OpenJS
Foundation runs its own CNA and exposes an API at
https://cna.openjsf.org/api.html that can issue CVEs through that
channel without leaving NCU. Add an opt-in path that routes
reservation and publication through the OpenJS CNA, keeping HackerOne
as the source of truth for the bug-bounty workflow.

Setting \`cve_source: 'openjs-cna'\` in \`.ncurc\` switches the source.
The default (\`hackerone\`) preserves the existing behaviour. The CVE id
is pushed back to the HackerOne report either way so the report still
carries it.

  * \`cna\` lazy auth accessor reading \`openjs_cna_token\` and
    \`openjs_cna_worker_url\` from \`.ncurc\`. Both treated as encrypted
    secrets (\`-x\`).
  * Five Request methods (\`cnaDispatch\`, \`cnaPoll\`,
    \`cnaWaitForCompletion\`, \`cnaReserveCve\`, \`cnaPublishCve\`).
  * New \`git node security --publish-cve\` subcommand, scoped to the
    OpenJS CNA path, that POSTs a v5.2 CNA Container per reserved CVE
    to MITRE. Run after the release ships on nodejs.org.
  * \`vulnerabilities.json\` -> v5.2 CNA Container mapper. The reference
    URL is derived from \`releaseDate\` so the MITRE record points at
    the same blog-post slug \`SecurityBlog#getSlug\` produces.
  * Prerequisites section in \`docs/git-node.md\`.
  * Unit tests for transport, slug helper, and mapper.

Signed-off-by: Ulises Gascon <ulisesgascongonzalez@gmail.com>
@codecov

codecov Bot commented Jun 13, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 52.42165% with 167 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.27%. Comparing base (4ea22b8) to head (6202df4).

Files with missing lines Patch % Lines
lib/update_security_release.js 36.52% 146 Missing ⚠️
lib/auth.js 12.50% 21 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1093      +/-   ##
==========================================
- Coverage   64.93%   62.27%   -2.67%     
==========================================
  Files          45       46       +1     
  Lines        6938     7620     +682     
==========================================
+ Hits         4505     4745     +240     
- Misses       2433     2875     +442     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant