Repository navigation
chore: pin Node.js 26.13.1 - #442
Merged
Merged
Conversation
Pick up the November 11, 2026 Node.js security release for CI and local tooling. Co-authored-by: otaki0413.it <otaki0413.it@gmail.com>
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Pick up the Node.js November 2026 security release so CI and local tooling run 26.13.1.
The Wednesday, November 11, 2026 security releases name Node.js v26.13.1 as the 26.x fix (with v24.22.3 and v22.23.5).
Pins that changed
.github/workflows/ci.yml:node-version26.13.0→26.13.1(voidzero-dev/setup-vp)AGENTS.md:nvm install/nvm useand the CI note26.13.0→26.13.1README.md: the CI version26.13.0→26.13.1No other
26.13.0string remains in the repo. There is no.nvmrcor.node-version, and none was added.Left as they are:
package.jsonengines.nodestays>=26. That is the major floor, not a 26.13.0 pin.pnpm-workspace.yamlminimumReleaseAgestays1440.@types/nodestays26.6.6. npm's 26 line ends at26.6.6(registrymodified2026-10-28T18:36:37Z). No newer 26.x types release exists, so there is nothing newer that clears the 1440-minute gate. This security release does not publish a types package.4.157.0,@cloudflare/vite-plugin1.67.0, vite-plus1.5.0, and pnpm12.17.0were not bumped. Install, check, test, build, andcf-typegen --checkpassed on Node 26.13.1 without them.wrangler.jsoncdoes not need a change.compatibility_flagsstays["nodejs_compat"]andcompatibility_datestays2026-11-05. That flag enables workerd's Node-compatible APIs. It does not select a Node.js patch.npm
undiciNode.js v26.13.1 updates the undici copy inside the Node binary to 8.12.4 and llhttp to 9.4.4. Installing 26.13.1 picks those up.
The lockfile also has
undici@7.30.1, required exactly by miniflare5.20261103.0-beta(pulled in by wrangler4.157.0) for local simulation. That npm copy is not Node's bundled undici. The patched 7.x release isundici@7.30.2, published 2026-11-05T09:06:58Z, which is older than 1440 minutes. No override was added. Changing it would be a Wrangler/miniflare dependency change, and the 26.13.1 verification did not require it.Which CVEs matter here
Production runs on workerd. These fixes land in the Node.js 26 process used for CI, local dev, and the build. They do not change the deployed Worker.
Relevant to that Node process (
vp, pnpm, Wrangler CLI):https.Agentcan reuse a TLS session authenticated under a different CA policy.ERR_PROXY_INVALID_CONFIG, when a proxy is configured for the Node process.llhttp_execute()on an HTTPS server. The advisory says cleartextnode:httpis not affected. Defaultvp devis cleartext HTTP on port 5173.undici@7.30.2): CVE-2026-116592, CVE-2026-120474, CVE-2026-116630, CVE-2026-120415, CVE-2026-120222, CVE-2026-120423. The cache-poisoning and cache-replay bugs need undici'scompose(redirect(), cache())path. Node'sfetchstill gets the redirect credential-stripping fix (CVE-2026-120415) and the SRI whitespace fix (CVE-2026-120423).The same 26.13.1 binary also fixes Node HTTP/2 and TLS server bugs. This template does not serve HTTP/2 from Node, and it does not terminate TLS in the Node process (Vite's dev server is HTTP/1; CI does not start a Node HTTP/2 or TLS server). They ship because CI and local tooling now run that binary:
fs.watchname leak), CVE-2026-123862 (zlibparams/destroy), CVE-2026-106071 (permission-model wildcard over-grant)The v26.13.1 release notes also list CVE-2026-123873 (permission model, heap snapshot path). That is Node's
--permissionmodel, not workerd.workerd does not run Node's nghttp2 HTTP/2 stack, Node's TLS handshake callbacks, Node's llhttp, Node's permission model, or the undici build shipped inside the Node 26 binary.
nodejs_compatstays as it is.Verification
Node v26.13.1, npm 11.20.0, pnpm 12.17.0:
pnpm install— exit 0. Lockfile passed supply-chain policies (377 entries) and was up to date. 219 packages installed. A second run after the pin edit reported "Already up to date" (exit 0).pnpm check— exit 0. All 16 files formatted. No lint or type errors in 7 files.pnpm test— exit 0. 1 file, 1 test passed (Vitest 5.1.0).pnpm build— exit 0. Client and SSR/workerd bundles built. Rolldown printed aSOURCEMAP_BROKENwarning fromvite:css-postduring the server build; this PR does not change that plugin or any CSS, and the command still exited 0.pnpm exec vp run cf-typegen --check— exit 0. wrangler 4.157.0: "Types at worker-configuration.d.ts are up to date."