What happened. Google's Brotli decoder has an out-of-bounds write in DecodeBlockTypeAndLength(), the function that handles block switches. It returns a plain boolean, so "malformed stream" and "need more input" look identical to callers, and on the fast path the return value is dropped. A crafted stream forces a block switch that cannot succeed, and the decoder keeps going with stale block state. The Node.js advisory describes a write past the end of an eight-byte internal buffer, with crash, memory disclosure or remote code execution as outcomes. Aikido's write-up gives it CVSS v4.0 9.2; Node.js rates it High.
Timeline. Per Aikido, OpenAI found the bug in February. The upstream source fix landed then but was not treated as a security issue, and no release shipped it. Node.js disclosed it on Wednesday, October 21 (Aikido's own timeline says the 22nd, which conflicts with its TL;DR; the Node.js post says the 21st). Python followed on Thursday. By Friday, patches for libbrotli, Python, Bun and Envoy were out.
Who is affected. Anything linking Brotli 1.0.3 through 1.2.0. In Python that is Brotli and brotlicffi, pulled in by urllib3/requests, httpx (with the brotli extra) and aiohttp. Bundled copies in curl/libcurl and OS packages may be patched without a version bump. The attack runs both ways: a hostile client can hit an unpatched server, and a hostile server can hit an unpatched client that accepts compressed responses. Nginx and Apache do not decode Brotli by default, but as one r/programming commenter pointed out, Nginx forwards Content-Encoding: br request bodies raw, so a proxy in front does not protect an app that decodes them.
What is unknown. Aikido says Node.js saw no in-the-wild exploitation as of October 22 and publishes no PoC, though it cites Imperva reaching exploitation against an unmodified Node.js 24.22.0 build. Aikido also notes that, as of October 23, the CVE record, OSV and the GitHub Advisory Database did not map this to PyPI packages, so pip-audit, Dependabot and Safety would not flag vulnerable versions. Note that this is a vendor blog.
Assessment. The bug is real and the Node.js project confirmed it. The "HTTP2Shell" branding is marketing: r/cybersecurity's top technical objection (236 points) is that this is a Brotli library issue, not an HTTP one. The more useful complaint, from a 142-point r/programming comment, is that CVSS says how bad a bug can be, not how easy it is to exploit, and AI-assisted bug hunting is producing many "RCE under niche conditions" findings. The practical answer commenters reached is to automate dependency updates and have an agent summarize the changelog diff before merge.
Sources: Aikido, Node.js advisory. Discussion: r/programming (426 points, 61 comments), r/cybersecurity (1,118 / 128), HN (270 / 136). The patchtheplanet.org page returned only a title.