Node.js security release of 2026-10-20/21 (CVE-2026-111497 Brotli out-of-bounds write, plus 9 TLS/DNS/crypto CVEs). Fixed: 22.23.4, 24.22.1, 26.12.1. 18 and 20 are EOL and get no fix.
New scripts/install-node.sh <major> replaces the three per-version scripts and fails the build below the per-line security floor, so a lagging NodeSource mirror cannot ship a vulnerable image.
CI matrix: 18, 20, 22, 24, 26; fail-fast: false.
Tested locally: node22/24/26 images build and report 22.23.4 / 24.22.1 / 26.12.1. The Brotli fix is a cherry-pick in Node (release notes: deps: brotli: cherry-pick 0ed4268a…), so process.versions.brotli still says 1.1.0/1.2.0 — expected. node24 and node26 containers started as a site (uid 1001) are healthy, nginx answers on :80 and the app on :3000.
Node.js security release of 2026-10-20/21 (CVE-2026-111497 Brotli out-of-bounds write, plus 9 TLS/DNS/crypto CVEs). Fixed: **22.23.4, 24.22.1, 26.12.1**. 18 and 20 are EOL and get no fix.
- New `scripts/install-node.sh <major>` replaces the three per-version scripts and **fails the build** below the per-line security floor, so a lagging NodeSource mirror cannot ship a vulnerable image.
- CI matrix: 18, 20, 22, **24, 26**; `fail-fast: false`.
**Tested locally:** node22/24/26 images build and report 22.23.4 / 24.22.1 / 26.12.1. The Brotli fix is a cherry-pick in Node (release notes: `deps: brotli: cherry-pick 0ed4268a…`), so `process.versions.brotli` still says 1.1.0/1.2.0 — expected. node24 and node26 containers started as a site (uid 1001) are healthy, nginx answers on :80 and the app on :3000.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- One install-node.sh <major> replaces install-node{18,20,22}.sh. It fails the
build if NodeSource hands back a version below the newest security release
for the line (22.23.4 / 24.22.1 / 26.12.1: CVE-2026-111497 Brotli OOB write
and 9 others), so a lagging mirror can't ship a vulnerable image silently.
18 and 20 are EOL: they still build, with a warning.
- CI matrix adds 24 and 26; fail-fast off so one line can't cancel the rest.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jknapp
merged commit f1e92ea1b4 into main2026-10-22 12:50:51 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Node.js security release of 2026-10-20/21 (CVE-2026-111497 Brotli out-of-bounds write, plus 9 TLS/DNS/crypto CVEs). Fixed: 22.23.4, 24.22.1, 26.12.1. 18 and 20 are EOL and get no fix.
scripts/install-node.sh <major>replaces the three per-version scripts and fails the build below the per-line security floor, so a lagging NodeSource mirror cannot ship a vulnerable image.fail-fast: false.Tested locally: node22/24/26 images build and report 22.23.4 / 24.22.1 / 26.12.1. The Brotli fix is a cherry-pick in Node (release notes:
deps: brotli: cherry-pick 0ed4268a…), soprocess.versions.brotlistill says 1.1.0/1.2.0 — expected. node24 and node26 containers started as a site (uid 1001) are healthy, nginx answers on :80 and the app on :3000.🤖 Generated with Claude Code
- One install-node.sh <major> replaces install-node{18,20,22}.sh. It fails the build if NodeSource hands back a version below the newest security release for the line (22.23.4 / 24.22.1 / 26.12.1: CVE-2026-111497 Brotli OOB write and 9 others), so a lagging mirror can't ship a vulnerable image silently. 18 and 20 are EOL: they still build, with a warning. - CI matrix adds 24 and 26; fail-fast off so one line can't cancel the rest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>