Node2Shell
tool · tool:node2shell
Imperva Red Team's name for CVE-2026-111497, the out-of-bounds write in the Brotli decoder bundled with Node.js (and in the PyPI Brotli and brotlicffi packages) that Imperva turned into code execution against the official Node.js 24.22.0 image through fetch() responses and Express 5 or body-parser 2 request bodies (Imperva, 2026-10-22).
Action items (1)
Do-now tasks recorded on the entries about Node2Shell, newest first. Check the date before acting on an older one.
- Update every Node.js 22.x, 24.x and 26.x runtime to 22.23.4, 24.22.1 or 26.12.1, including the Node binary inside container images, which a package inventory misses, and upgrade the PyPI Brotli package to 1.2.1 and brotlicffi to 1.2.1.0 wherever either is installed; move any application on an end-of-life Node.js line to a supported release.2026-10-24CVE-2026-111497
Defender insights
What each entry about Node2Shell tells a defender to do, newest first.
Story timeline
Hunting pivots
ATT&CK techniques (1 across 1 tactic)
1 technique observed across 1 entry about this entity, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v20.0 · compare on the matrix · Navigator layer (JSON)
- Initial AccessExploit Public-Facing Application
Initial Access TA0001
T1190Exploit Public-Facing Application×1
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network. The weakness in the system can be a software bug, a temporary glitch, or a misconfiguration.
Evidence: 2026-10-24/cve-2026-111497-node2shell-brotli-decoder-rce-nodejs-pypi · ATT&CK page ↗
Entries about Node2Shell (1)
Co-occurring entities
Derived: referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.
- brotlicffi (PyPI)×1
- Google Brotli×1
- Node.js×1
- Node.js and Google Brotli (Node2Shell): out-of-bounds write in the Brotli decoder lets crafted compressed data run code via fetch() and Express 5 or body-parser 2 request bodies (CVSS 4.0 9.2); fixed in Node.js 22.23.4, 24.22.1 and 26.12.1, Brotli 1.2.1 and PyPI Brotli 1.2.1 and brotlicffi 1.2.1.0×1
- Python Brotli (PyPI)×1
Where this entity is cited
Source distribution
- nodejs.org4 (50%)
- euvdservices.enisa.europa.eu1 (12%)
- github.com1 (12%)
- imperva.com1 (12%)
- opensourcemalware.com1 (12%)
All cited sources (8)
- euvdservices.enisa.europa.euENISA EUVDhttps://euvdservices.enisa.europa.eu/api/enisaid?id=EUVD-2026-108169
- github.comGoogle Brotlihttps://github.com/google/brotli/releases/tag/v1.2.1
- imperva.comImperva Threat Researchhttps://www.imperva.com/blog/node2shell-from-brotli-data-to-remote-code-execution/
- nodejs.orgNode.js project (release v22.23.4)https://nodejs.org/en/blog/release/v22.23.4/
- nodejs.orgNode.js project (release v24.22.1)https://nodejs.org/en/blog/release/v24.22.1/
- nodejs.orgNode.js project (release v26.12.1)https://nodejs.org/en/blog/release/v26.12.1/
- nodejs.orgNode.js projecthttps://nodejs.org/en/blog/vulnerability/october-2026-security-releases
- opensourcemalware.comOpenSourceMalwarehttps://opensourcemalware.com/blog/node2shell-affects-python