Node-based images ship a Node.js vulnerable to Node2Shell (CVE-2026-111497); rebuild with --pull and republish the 3.0.x line
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
- 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. - Please also republish the 3.0.x line (new
v3.0.39digests or av3.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. - Consider adding
--pullto the image build workflow and a post-build check (node --versionagainst 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bigbluebutton/docker
-
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
bigbluebutton/docker#395 · 4 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
bigbluebutton/docker#382 · 5 comments · 1 reaction ·
-
error in README.mdOpen
Difficulty 1/5 Under an hour Newbie friendliness 65/100
bigbluebutton/docker#294 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 54/100
bigbluebutton/docker#407 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 55/100
bigbluebutton/docker#400 · 1 comment ·
All issues in bigbluebutton/docker
Similar issues
-
ca-certificates_data-with-certs slice does not have newline at the end in /etc/ca-certificates.confOpen
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
canonical/chisel-releases#1510 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
rossoctl/agent-skills#58 ·
-
cellctl scrubbed-cell test: codex stub has no 'features list' case, so the multi_agent check failsOpenbug raised-by:verifier
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
medici-finance/assay#6171 ·
Maintainers usually reply within 1 day