Node-based images ship a Node.js vulnerable to Node2Shell (CVE-2026-111497); rebuild with --pull and republish the 3.0.x line

Open
#405 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
25/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
docker, nodejs
Domain
devops

Research direction

The affected images are built from the FROM node:22-bookworm-slim and node:24-bookworm-slim lines in the mod/*/Dockerfile files. Check which base tags they use, then run docker run --rm --entrypoint node <image> --version on a rebuilt image. Done means the Node version is at or above 22.23.4 and 24.22.1, and the 3.0.x images are republished. Publishing needs maintainer access to Docker Hub, so this is not a good first contribution.

Written by the indexing model from the issue text.

Description

Summary

The Node.js-based images built from this repo (mod/*/Dockerfile, FROM node:22-bookworm-slim / node:24-...) carry a Node.js below the versions that fix CVE-2026-111497 ("Node2Shell"), the out-of-bounds write in the bundled Google Brotli decoder. Node.js fixed it on 2026-10-21 in 22.23.4, 24.22.1 and 26.12.1 (https://nodejs.org/en/blog/vulnerability/october-2026-security-releases). CISA added the CVE to its Known Exploited Vulnerabilities catalog on 2026-10-27. Node.js offers no workaround; upgrading the runtime is the only remediation.

Because the Dockerfiles use floating base tags, the fix only reaches the published images when they are rebuilt with a fresh base. The images on Docker Hub were not, or were built from a stale cached base layer.

What the published images contain

Checked with docker run --rm --entrypoint node <image> --version on 2026-10-31:

Image Pushed Node inside Fixed version
alangecker/bbb-docker-graphql-actions:v3.0.39 2026-10-07 22.23.3 22.23.4
alangecker/bbb-shared-notes-server:v3.0.39 2026-10-07 22.23.3 22.23.4
alangecker/bbb-docker-bbb-export-annotations:v3.0.39 2026-10-07 22.23.3 22.23.4
alangecker/bbb-docker-webhooks:v3.6.0 2026-10-07 22.23.3 22.23.4
alangecker/bbb-docker-webrtc-sfu:v2.24.0 2026-10-07 22.23.3 22.23.4
alangecker/bbb-docker-pads:v1.5.8 2026-03-17 22.22.1 22.23.4
alangecker/bbb-docker-graphql-actions:v4.0.1 2026-10-30 24.22.0 24.22.1
alangecker/bbb-docker-webhooks:v3.7.0 2026-10-30 24.22.0 24.22.1

The 2026-10-30 builds are nine days after the fix and still one patch short, which points at Docker's layer cache resolving node:24-bookworm-slim to an old digest (no --pull).

Related, in another repo: bigbluebutton/greenlight:v3.9.0.1 (2026-09-09) contains Node 20.15.1. Node 20 is end of life and will never receive this fix. I can open a separate issue there if wanted.

Exposure

Whether a given service is exploitable depends on it decompressing attacker-supplied Brotli data (Node's HTTP server does not decode request bodies on its own). The runtime is nevertheless below the fixed version in every Node-based container of a standard deployment, which is what vulnerability scanners and the KEV listing act on, and operators cannot fix it without new images.

Request

  1. Rebuild and republish the Node-based images with a fresh base (docker build --pull, or pin the base, e.g. node:22.23.4-bookworm-slim / node:24.22.1-bookworm-slim): bbb-graphql-actions, bbb-shared-notes-server, bbb-export-annotations, webhooks, webrtc-sfu, bbb-pads.
  2. Please also republish the 3.0.x line (new v3.0.39 digests or a v3.0.40), since that is what the stable compose template deploys and a jump to the 4.0 images is a major upgrade for operators.
  3. Consider adding --pull to the image build workflow and a post-build check (node --version against the current security release) so a Node security release is picked up by the next build automatically.

Environment

  • bigbluebutton/docker at e59892e (2026-10-30), images as listed above
  • Host: Debian 13, Docker 29
Dominant language
Shell
Stars
436
Forks
277
Avg merge
2m
Merged PRs (30d)
2

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bigbluebutton/docker

All issues in bigbluebutton/docker

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.