Skip to content

[sec-check] CI workflows and Netlify build still on EOL Node.js 20 (unpatched since 2026-04-30) #7076

Closed

Description

@hivecommons-hive

Security Finding

Severity: medium
Type: supply-chain / EOL runtime

Multiple parts of the docs build still target Node.js 20, which reached end-of-life on 2026-04-30 (per the Node.js release schedule) and no longer receives security patches. The runtime Docker image was already moved to Node 26 (see #5900/#5902), but CI workflows and the Netlify production build continue to install Node 20.

Where Node 20 is still pinned (HEAD fab16f2)

Netlify build (production docs site):

  • netlify.toml:11 — NODE_VERSION = "20.11.1"

GitHub Actions workflows (8 files):

  • .github/workflows/check-internal-links.yml:41
  • .github/workflows/create-version-branch.yml:153
  • .github/workflows/dashboard-lint.yml:25
  • .github/workflows/fuzz-mdx.yml:46
  • .github/workflows/generate-acmm-history.yml:34
  • .github/workflows/generate-leaderboard.yml:30
  • .github/workflows/sync-console-release-versions.yml:32
  • .github/workflows/typecheck.yml:35

For contrast, .github/workflows/vitest.yml:41 already runs on Node 22, and the runtime Dockerfile uses node:26-alpine. This bug is that the rest was not carried forward.

Impact

CI jobs, docs preview builds, and the Netlify production build execute untrusted content (mdx, dependencies from npm ci, third-party actions) on an unpatched Node runtime. Any post-2026-04-30 Node.js security advisory (V8, HTTP parser, permissions model, TLS) is silently unpatched here. Netlify’s build environment is the most exposed of the three, since it fetches and executes the full node_modules dependency graph on every push.

Recommendation

Bump every node-version: "20"/'20' in the workflows above to "22" (matching vitest.yml), and bump netlify.toml NODE_VERSION to a current LTS ("22.11.0" or newer). Exact one-line replacements:

  • netlify.toml:11 — NODE_VERSION = "20.11.1" → NODE_VERSION = "22.11.0"
  • Each node-version: "20" / node-version: '20' → node-version: "22" in the 8 workflow files listed above.

No other changes are required — package.json has no engines pin, and the vitest job already proves Node 22 works.

Notes on landing this fix

  • The netlify.toml change is pushable by this agent and will be opened as a separate PR (referencing this issue).
  • The 8 workflow changes touch .github/workflows/** and cannot be pushed from this agent's contributor-tier App token (workflows scope not granted). They need a human or an ISSUES_PRS_MERGE-tier agent to land the mechanical replacements above.

Filed by sec-check agent (ACMM L6 — full mode)

🐝 Hive Agent: security | Instance: hosted-kubestellar-console-4vkt | SHA: unknown

— hive: agent=sec-check backend=copilot model=claude-opus-4.7 copilot=1.0.88

Activity

  1. added
    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.
    on Sep 24, 2026
  2. hivecommons-hive commented on Sep 24, 2026

    @hivecommons-hive
    ContributorAuthor

    A merged PR referenced this issue without closing it. Carrying the remainder back here so the issue timeline shows what is still open.

    Remainder from the PR body:

    8 workflow files under .github/workflows/*.yml also pin node-version: '20' — mechanical 20→22 replacements listed in the issue — and cannot be pushed by this contributor-tier agent because the App token lacks the workflows permission.

    This comment is edited in place by the task-list sweep on every cycle; it is not duplicated.

  3. Chandana5599 commented on Sep 24, 2026

    @Chandana5599
    Contributor

    Hi! I’d like to work on the remaining Node.js 20 → 22 workflow updates in this issue. I can take care of the 8 .github/workflows/*.yml changes listed above.

    Could you please assign this issue to me? Thank you!

  4. github-actions commented on Sep 24, 2026

    @github-actions
    Contributor

    Hi @Chandana5599! To assign yourself, use the slash command: /assign (and /unassign to remove).

    Resources: Contributors Guide | Console Docs | Knowledge Base

  5. Chandana5599 commented on Sep 24, 2026

    @Chandana5599
    Contributor

    /assign

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

Metadata

Metadata

Assignees

Labels

agent/securityApproved by a Hive merger/owner for auto-merge on green CIhelp wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.needs-humansecurity

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions