A fix in a library does not automatically reach every application that includes it. The Brotli flaw commonly called Node2Shell provides a concrete example of the handoff between AI-assisted security research and software maintenance.
The official October 21 Node.js advisory identifies CVE-2026-111497 as a high-severity out-of-bounds write in the bundled Brotli decoder. Brotli compresses data for transfer; the decoder expands it again.
The input path matters
According to the advisory, malformed attacker-controlled Brotli data processed by the affected decoder can corrupt memory, potentially causing a crash, memory disclosure or remote code execution. Those conditions matter: naming an affected component does not establish that every installation has been compromised.
Node.js credits OpenAI Codex Security’s Khai Tran and Sylvie Mayer for the report, and mcollina and aduh95 for the fix. Discovery and remediation remain distinct contributions in the source record.
From source code to running software
In its October 23 statement, OpenAI says the root cause had been fixed in Brotli’s source in February, before its security significance was known, without a newer Brotli release being available. It describes a chain in which downstream software and its users also have to take the update. That timeline is attributed to OpenAI’s account.
The Node.js release lists versions 22.23.4, 24.22.1 and 26.12.1. These are the fixes named in that announcement, rather than a reason to ignore appropriate later supported releases.

Check the environment that actually runs
Aikido’s advisory discusses container images and bundled runtimes. An application’s packaged Node.js may differ from another installation on the host. Distribution packages can also carry their own security patches.
No system was scanned or attacked for this article. A dated statement about exploitation is not being presented as a current finding for every environment.
Theo’s assessment
A useful maintenance record should identify the component, the applicable fix and the version the restarted service is actually running. That proposed check connects a research result to operational protection. It does not turn a patch announcement into a guarantee that the entire system is free of flaws.


