What happened
Node.js and Google shipped fixes on October 21, 2026 for CVE-2026-111497, an out-of-bounds write in Google's Brotli decompression code that OpenAI's Codex Security researchers reported; The Hacker News reported on October 24 that the same bug sits in Bun, Envoy, Istio, the Python Brotli and brotlicffi packages and cdxgen, because each ships its own copy of the decoder. An app is exposed when it unpacks Brotli data someone else controls, for example when Node.js fetch() reads a 'br' response or Express 5 and body-parser 2 decode a Brotli upload, and Imperva showed code execution on one unpatched Node.js build. No attacks in the wild have been reported, and ratings differ: Google scores it 9.2 (critical), Node.js calls it high and Red Hat rates it 8.1. (The Hacker News, Oct. 24, 2026)
Note on figures: Severity scores come from Google (9.2), Node.js (high) and Red Hat (8.1); the code-execution demonstration is Imperva's (a security vendor) and has not been released.
What it means for Canada: our assessment
Assessment: no Canadian victims or Cyber Centre alert on this CVE are documented yet. Node.js and Python sit under a large share of Canadian web apps, APIs, fintech back ends and AI agent tooling, so any Canadian team that fetches content from outside servers or accepts compressed uploads should patch now.
- Sectors
- Banks and fintechs · E-commerce and retail · SaaS and AI startups · Telecom · Government digital services · Health portals
- Tools involved
- Node.js 22.x, 24.x, 26.x · Express 5 / body-parser 2 · Bun · Envoy and Istio (Brotli filter on) · Python Brotli and brotlicffi with requests, urllib3, httpx, aiohttp · cdxgen · Google Brotli C library 1.0.3 to 1.2.0
- Canadian rules
- PIPEDA: if exploitation exposes personal information, report breaches with a real risk of significant harm to the OPC, notify affected people and keep a breach record
Quebec Law 25: record every confidentiality incident and report serious ones to the Commission d'accès à l'information
OSFI B-13: federally regulated financial institutions must patch critical vulnerabilities promptly under their technology and cyber risk programs and report material incidents to OSFI
Bill C-8 / Critical Cyber Systems Protection Act (phasing in): designated operators in finance, telecom, energy and transport will owe cyber incident reports to the Cyber Centre
Assessment, not documented exposure. The flaw lives in widely reused open-source runtimes and libraries, not in any one vendor, so exposure follows the software, not the country. Canadian firms running unpatched Node.js, Bun or Python services that fetch outside content or accept Brotli request bodies match the exposure conditions Node.js and The Hacker News describe.
Takeaways for Canadian businesses
- BusinessUpdate Node.js to 22.23.4, 24.22.1 or 26.12.1 (20.x and older are end of life and stay exposed), Bun to 1.4.4, and Python Brotli to 1.2.1 and brotlicffi to 1.2.1.0, then restart services and rebuild container images, since running processes keep the old decoder.
- BusinessIf you run Envoy or Istio with Brotli decompression enabled, move to Envoy 1.40.0, 1.39.3, 1.38.6, 1.37.8 or 1.36.12 and Istio 1.31.2, 1.30.6 or 1.29.9, or switch the Brotli decompressor off until you can.
- BusinessCheck Python environments by hand for the Brotli and brotlicffi packages (advisories PYSEC-2026-4322 and PYSEC-2026-4323), because GitHub's advisory, which Dependabot reads, did not list affected packages as of October 24; uninstall them where not needed so HTTP clients fall back to gzip.
- BusinessWhere you cannot patch yet, reject requests with Content-Encoding: br before any proxy or parser decodes them, and turn off automatic Brotli decoding in HTTP clients; removing br from Accept-Encoding alone does not protect you, and a WAF does not cover responses your code fetches.
- BusinessPrioritize AI agents, crawlers and integrations that fetch untrusted web content, and report any confirmed compromise to the Canadian Centre for Cyber Security at cyber.gc.ca.
For the Canadian AI sector
This is the second critical bug in a week (after PHP2Shell) found by an AI lab's own security tooling, so Canadian security teams should expect more AI-found flaws in core open-source parts and shorter patch windows. AI agents and scrapers built on Node.js or Python that fetch arbitrary web pages are a natural target, since a malicious server can send Brotli whether or not the client asked for it.
Written by AgentsNorth from the source below. General information, not legal or security advice.