Skip to content

CI: run the tests on Node 24 (CVE-2026-111497) - #2

Merged
markhm merged 1 commit into
masterfrom
feature/ci-node-24
Oct 26, 2026
Merged

markhm merged 1 commit into
masterfrom
feature/ci-node-24

Conversation

@markhm

@markhm markhm commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

What

The tests workflow ran its test step on Node 20, which is end-of-life and has no release that fixes CVE-2026-111497 (out-of-bounds write in the Brotli decoder). This moves it to Node 24.

  • actions/setup-node installs node-version: '24' with check-latest: true, so it looks up the newest 24.x in the actions/node-versions manifest and downloads it when the runner's cached copy is older. Without check-latest, an earlier run of this branch got the cached 24.21.0, which predates the fixed 24.22.1.
  • actions/checkout and actions/setup-node go from @v4 to @v7, the current majors. This does not change the Node the action code runs on: the runner was already forcing the v4 actions onto Node 24 with a deprecation warning. v7 declares node24 itself, so the warning goes.
  • README and CHANGELOG now say Node 24.

Verification

  • Local: bash test/run.sh under Node 24.16.0: passed 298, failed 0 (macOS bash 3.2).
  • CI on this head, push and pull_request runs: setup-node resolved and put v24.22.1 on PATH, test suite passed 298, failed 0, no ##[warning] lines. The suite's JS checks skip silently when node is absent (pre-existing command -v node || return 0), so the pass count alone does not prove they ran on 24.22.1; the setup-node step output does.

Notes

  • After the first review round the branch was squashed into one commit and force-pushed, so an earlier commit message claiming "latest 24.x" without check-latest does not land on master.
  • No fp issue: requested directly after the CVE exposure check.

🤖 Generated with Claude Code

@markhm
markhm force-pushed the feature/ci-node-24 branch from dd0e53c to 16e7eac Compare October 25, 2026 19:53
Node 20 is end-of-life and has no release fixing CVE-2026-111497 (Brotli
decoder). setup-node now installs node-version '24' with check-latest, so
it looks up the newest 24.x in the actions/node-versions manifest and
downloads it when the runner's cached copy is older. Without
check-latest the cache supplied 24.21.0, which predates the fixed 24.22.1.

actions/checkout and actions/setup-node move from v4 to v7. The runner
was already forcing the v4 actions onto Node 24 with a deprecation
warning; v7 declares node24 itself, so the warning goes.

README and CHANGELOG say Node 24.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@markhm
markhm force-pushed the feature/ci-node-24 branch from 16e7eac to cc71083 Compare October 25, 2026 20:00
@markhm
markhm merged commit 8b231e2 into master Oct 26, 2026
2 checks passed
@markhm
markhm deleted the feature/ci-node-24 branch October 26, 2026 07:52
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