Skip to content

chore(deps): bump Node.js to 24.22.1 to fix CVE-2026-111497 - #6560

Closed
ludoviccarretti wants to merge 1 commit into
redis:mainfrom
ludoviccarretti:chore/node-version
Closed

ludoviccarretti wants to merge 1 commit into
redis:mainfrom
ludoviccarretti:chore/node-version

Conversation

@ludoviccarretti

@ludoviccarretti ludoviccarretti commented Oct 26, 2026 •

Copy link
Copy Markdown

What

Bumps the Node.js runtime to 24.22.1 across .nvmrc, the build/test Dockerfiles, and CI test configurations to address CVE-2026-111497 (a.k.a. "Node2Shell").

Why this matters: CVE-2026-111497 is an out-of-bounds write (CWE-787) in the Brotli decoder bundled into the Node.js binary. Node.js rates it high severity (CVSS v4.0 9.2 / Critical in some scores), and it can allow:

  • Denial of service (crash on a crafted Brotli stream)
  • Memory disclosure (leaking credentials / in-memory data)
  • Remote code execution as the Node.js process user

Any untrusted Brotli-compressed input triggers it — not only explicit zlib calls, but also transparent fetch() responses with Content-Encoding: br and body-parsing middleware. Public PoCs exist (code execution demonstrated against the unpatched node:24.22.0 image), so this is a routine-but-urgent fix.

Change: every Node base image / version pin is upgraded to the patched 24.22.1-alpine (the fixed version for the 24.x line):

  • .nvmrc: 24.16.0 → 24.22.1
  • Dockerfile, .github/build/build.Dockerfile, redisinsight/api/test/test-runs/**, tests/e2e/static-server.Dockerfile: node:24.16.0-alpine / node:22.22.0-alpine → node:24.22.1-alpine

Refs https://nodejs.org/en/blog/vulnerability/october-2026-security-releases

Testing

No code logic changes — this is a base-image / runtime version bump. Verified:

  • Build: npm run build + npm run test:api pass on Node 24.22.1 locally
  • No lockfile changes: no package.json touched, so no package-lock.json churn
  • Images: Dockerfiles reference the new node:24.22.1-alpine tag (rebuild/redeploy required — an image still pinned to a previous tag stays vulnerable)

No visual/behavioral changes expected; a standard smoke test of the app on the new runtime is sufficient.


Note

Medium Risk
Touches the production and test Node runtime only (no app logic), but a full image rebuild/redeploy is required and any Node patch can surface subtle runtime regressions despite passing existing build/tests.

Overview
Upgrades every Node.js version pin to 24.22.1 to pick up the security fix for CVE-2026-111497 (Brotli decoder out-of-bounds write in the Node binary, with DoS / memory disclosure / RCE risk on untrusted Brotli input).

.nvmrc moves from 24.16.0 to 24.22.1. Production and CI Docker (Dockerfile build + runtime stages, .github/build/build.Dockerfile, API test test.Dockerfile, e2e static-server.Dockerfile) now use node:24.22.1-alpine instead of 24.16.0-alpine or 22.22.0-alpine. Test compose dummy services (local.build.yml, cloud-st/docker-compose.yml) are updated to the same image so local/CI test stacks match the patched runtime.

No application or dependency manifest changes—only base images and the local Node version file. Images must be rebuilt and redeployed for the fix to apply in running environments.

Reviewed by Cursor Bugbot for commit 2e907e2. Bugbot is set up for automated code reviews on this repo. Configure here.

Upgrade Node.js runtime across .nvmrc, build/test Dockerfiles and CI test configurations from 24.16.0/22.22.0 (Alpine) to 24.22.1-alpine.

Addresses CVE-2026-111497 fixed in this release.
@ludoviccarretti
ludoviccarretti requested a review from a team as a code owner October 26, 2026 12:37
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-26T12:42:32.007526Z 2e907e2 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2e907e28ea

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread .nvmrc
@@ -1 +1 @@
24.16.0
24.22.1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Upgrade the packaged Electron runtime

For packaged desktop builds, this .nvmrc only selects the build-time Node used by install-all-build-libs; the app is still shipped with electron@43.7.1 (package.json:188) and starts the backend inside that Electron main process (redisinsight/desktop/app.ts:38 and redisinsight/desktop/src/lib/server/server.ts:14), so it never runs either patched Docker runtime. A desktop user whose backend receives a crafted Brotli-compressed response therefore remains on Electron's vulnerable embedded Node/Brotli despite this CVE fix; bump Electron to a release carrying the Node fix and regenerate its lock entry as part of this change.

AGENTS.md reference: AGENTS.md:L116-L116

Useful? React with 👍 / 👎.

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

pawelangelow added a commit that referenced this pull request Nov 9, 2026
Picks up the latest Node 24 and Electron 43 patch releases on top of the
CVE-2026-111497 bump. Node 24.22.2 keeps the base image free of the
compromised eMudhra root and ships npm with tar 7.5.22.

References: #6560, #6556, #6450
@pawelangelow

Copy link
Copy Markdown
Contributor

Thanks for the contribution! I'm closing this one in favour of #6584

pawelangelow added a commit that referenced this pull request Nov 10, 2026
Picks up the latest Node 24 and Electron 43 patch releases on top of the
CVE-2026-111497 bump. Node 24.22.2 keeps the base image free of the
compromised eMudhra root and ships npm with tar 7.5.22.

References: #6560, #6556, #6450
pawelangelow added a commit that referenced this pull request Nov 10, 2026
* chore(deps): bump Node.js to 24.22.1 and Electron to 43.8.4

Pins Node 24.22.1 in .nvmrc and the build/test Dockerfiles, and bumps
Electron to 43.8.4 so the desktop app bundles Node 24.22.1 as well.

* chore(deps): bump Node.js to 24.22.2 and Electron to 43.8.7

Picks up the latest Node 24 and Electron 43 patch releases on top of the
CVE-2026-111497 bump. Node 24.22.2 keeps the base image free of the
compromised eMudhra root and ships npm with tar 7.5.22.

References: #6560, #6556, #6450
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.

3 participants