Skip to content

[Security] Upgrade Node.js to release containing eMudhra CA blocklist #8

Open

Description

@nishantmodak

Priority assessment

Security follow-up, not urgent: this is a Node OpenTelemetry example repository.

Why this matters

Node.js historically accepted TLS chains through the compromised eMudhra intermediates because its embedded Mozilla root store did not have browser-style online revocation/blocklist handling. Node merged an SPKI blocklist for all eight compromised intermediates on 20 October 2026, but the change must be backported and released on each active Node line.

The latest public Node releases observed during this audit—v26.12.0, v24.22.0, and v22.23.3—predate the fix and must not be treated as patched merely because they are currently latest.

Repository evidence

  • Dockerfile:2 — FROM node:18
  • package.json — Node package/build manifest

Required remediation

  1. Inventory every Node version used by this repository in development, CI, package publishing, container builds, and production runtime.
  2. Upgrade each supported release line to the first Node release whose source contains commit d9a3f3d150f7959f2d448d9a61aa11f5a75aa2b3 (or its official backport). Verify this from Node's release notes/source tag; do not assume an older "latest" tag contains the fix.
  3. If this repository uses an end-of-life major (for example Node 10, 14, 16, or 18), migrate to a supported major that contains the fix instead of waiting for a backport that will not arrive.
  4. Update all applicable pins: Docker base tags/digests, actions/setup-node inputs, .nvmrc, .node-version, tool-version files, package engines.node, release workflows, and documentation.
  5. Rebuild containers, server bundles, CLIs, desktop applications, extensions, actions, and published packages from a clean dependency/base-image cache. Redeploy runtime artifacts through the normal release process where applicable.
  6. Keep TLS verification enabled. Do not use NODE_TLS_REJECT_UNAUTHORIZED=0, rejectUnauthorized: false, broad custom trust roots, or similar bypasses.

Acceptance criteria

  • Every Node execution surface used by this repository is documented in the fixing PR, including CI/build-only usage when there is no production Node runtime.
  • Each selected Node release is proven to contain the upstream SPKI-blocklist fix or an official backport of it.
  • Pinned Node versions, images, workflows, and engine constraints are updated consistently; obsolete majors are removed where applicable.
  • With default TLS verification enabled, Node rejects https://dv-g3b-emudhra.we-have-a-problem.com/ with a certificate-validation error.
  • The same updated Node runtime successfully connects to a normal trusted HTTPS endpoint.
  • Relevant dependency installation, lint, unit, integration, build, packaging, and release checks pass.
  • Any shipped artifact is rebuilt without stale base-image/dependency caches and redeployed or republished where applicable.
  • The fixing PR links this issue and records process.version, the release/backport evidence, TLS-test output, and build/deployment evidence.

Scope note

This issue covers Node's embedded trust-policy fix. Updated host/container CA packages and other affected runtimes or dependency bundles remain separate requirements for the wider eMudhra incident response.

Activity

  1. added
    urgentRequires urgent attention
    securitySecurity vulnerability or incident
    on Oct 20, 2026
  2. changed the title [-][Security][Urgent] Upgrade Node.js to release containing eMudhra CA blocklist[/-] [+][Security] Upgrade Node.js to release containing eMudhra CA blocklist[/+] on Oct 20, 2026
  3. coder9io commented on Oct 21, 2026

    @coder9io

    On it. I'll open a PR from coder9io/issue-8 and request review from @reviewer9io, @nishantmodak.

  4. added
    coder9io:workingcoder9io is writing the test and the fix
    coder9io:ready-to-mergeApproved, CI green and mergeable: needs a human to merge
    coder9io:addressing-feedbackcoder9io is acting on review comments, CI failures or conflicts
    and removed
    coder9io:queuedAssigned to coder9io, not started yet
    coder9io:workingcoder9io is writing the test and the fix
    coder9io:ready-to-mergeApproved, CI green and mergeable: needs a human to merge
    on Oct 21, 2026
  5. 4 remaining items

  6. added
    coder9io:addressing-feedbackcoder9io is acting on review comments, CI failures or conflicts
    and removed
    coder9io:addressing-feedbackcoder9io is acting on review comments, CI failures or conflicts
    on Oct 21, 2026
  7. nishantmodak commented on Oct 21, 2026

    @nishantmodak
    MemberAuthor

    @coder9io Upstream release blocker removed for the supported LTS lines.

    Please update this repository now:

    1. Keep the current supported major where practical and pin the fixed patch (22.23.4 or 24.22.1); pin Docker images by exact tag plus digest where applicable.
    2. If the repository is on Node 20 or older, migrate it to 22.23.4 or 24.22.1 rather than waiting for another backport.
    3. Align engines.node, setup-node/workflow inputs, tool-version files, Docker stages, and release/runtime documentation.
    4. Rebuild without cache and run the repository checks plus the acceptance TLS probe: the eMudhra test endpoint must fail with CERT_REVOKED, while a normal trusted HTTPS endpoint succeeds.
    5. Push the evidence, request @reviewer9io again after the new commit, and do not mark ready until CI and the current-head review are clean.

    This issue is no longer waiting on upstream publication.

  8. added
    coder9io:addressing-feedbackcoder9io is acting on review comments, CI failures or conflicts
    and removed on Oct 21, 2026
  9. added
    coder9io:ready-to-mergeApproved, CI green and mergeable: needs a human to merge
    and removed
    coder9io:addressing-feedbackcoder9io is acting on review comments, CI failures or conflicts
    on Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

coder9io:ready-to-mergeApproved, CI green and mergeable: needs a human to mergesecuritySecurity vulnerability or incident

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions