CVE-2026-111497 · Broccoli2Shell / HTTP2Shell / Node2Shell · Brotli decoder out-of-bounds write

Broccoli2Shell - HTTP2SHELLFixed vs not fixed, by product family

Status of each product, day by day. Updated 27 October 2026 (see the corrections log). Vendor statements and public trackers only.

Summary: Broccoli2Shell (HTTP2Shell, Node2Shell, CVE-2026-111497) is an out-of-bounds write in the Google Brotli decoder, c/dec/decode.c, in Brotli 1.0.3–1.2.0. Fixed upstream in Brotli 1.0.10, 1.1.1 and 1.2.1 and in Node.js 22.23.4, 24.22.1 and 26.12.1 on 21 October 2026. As of 27 October 2026, 42 of 83 tracked products are fixed and 17 remain vulnerable with no fix, mostly through bundled Brotli copies. Severity ratings differ: CVSS 4.0 9.2 Critical (Google as CNA), CVSS 3.1 8.1 for .NET (Microsoft) and Important (Red Hat).

Phoenix Security Broccoli2Shell logo

Hover or tap a row for affected and fixed versions, notes and sources. Days after today show the current status carried forward, not a forecast.

How to patch HTTP2Shell CVE-2026-111497

Update the affected runtime or Brotli library:

  • Node.js: upgrade to 22.23.4, 24.22.1, or 26.12.1, or any newer supported release on that line.
  • Native Brotli / libbrotli: 1.2.1 or later. Older branches: patched 1.0.10 or 1.1.1.
  • Python: Brotli ≥ 1.2.1 and brotlicffi ≥ 1.2.1.0, wherever installed. Also audit wheels that vendor their own decoder (Pillow, pyarrow, curl-cffi, pycurl).
  • curl / libcurl: move the Brotli dependency to 1.2.1, a patched older release, or the vendor's fixed package. Bundled or statically linked copies need a new application build.
  • Bun: 1.4.4 or later. Rebuild compiled executables that bundle Bun.
  • .NET: runtime 8.0.33, 9.0.22 or 10.0.14 (11.0.0-rc.3 for .NET 11), or SDK 8.0.427 / 8.0.133, 9.0.320 / 9.0.123, 10.0.403 / 10.0.114 (out-of-band, 25 Oct). Rebuild NativeAOT and self-contained apps. Brotli decoding is off by default in .NET, so only apps that opt in are exposed.
  • Visual Studio and PowerShell: Visual Studio 2026 18.11.2, 2022 17.14.43, 2019 16.11.61; PowerShell 7.6.9, 7.5.13, 7.4.22.
  • Envoy: 1.40.0, 1.39.3, 1.38.6, or 1.37.8, or newer on a supported branch. 1.36.12 also has the fix, but 1.36 is unsupported.
  • Istio: fixed in 1.29.9, 1.30.6 and 1.31.2. Use a newer supported release; 1.29 is end of life.
  • Operating-system packages: install the vendor's security update. Backports often keep the old upstream version number.
  • Other servers, proxies, gateways and clients: update the runtime or Brotli library they use. If Brotli is bundled, install the vendor release that explicitly addresses this CVE. For managed services, confirm remediation with the provider.

Update lockfiles, then rebuild applications and container images, redeploy, and restart services. Finally, check that running workloads actually load the patched components.

What to do if you can't upgrade yet

  • Incoming HTTP requests: reject any request whose Content-Encoding includes br at the reverse proxy, load balancer or middleware, before a vulnerable decoder sees the body. Match br case-insensitively, including inside lists of encodings: (?i)(^|,)\s*br\s*(,|$).
  • Outbound HTTP requests: remove br from Accept-Encoding. Also disable Brotli response decoding, or reject responses whose Content-Encoding includes br before decoding starts. Do this check before any automatic body processing; checking after the client has downloaded and decoded the response is too late. Node's fetch() decodes br even when you request identity.
  • WAF rules are inbound only. Cloudflare's two managed rules ship in Log mode, so override them to Block. Azure DRS 2.2 rule 920450 blocks in Prevention mode.

Fixed releases, updated 27 October 2026

ProjectFixed versionsNotes
Google Brotli1.0.10 · 1.1.1 · 1.2.1Pick the fixed release for your branch.
Node.js22.23.4 · 24.22.1 · 26.12.120 / 23 / 25 are EOL with no fix.
Bun1.4.4Includes Brotli 1.2.1.
PyPI Brotli / brotlicffi1.2.1 · 1.2.1.0PYSEC-2026-4322 / 4323.
.NET runtime8.0.33 · 9.0.22 · 10.0.14 · 11.0.0-rc.3SDK 8.0.427 · 9.0.320 · 10.0.403 (or 8.0.133 · 9.0.123 · 10.0.114). .NET Framework not affected.
Visual Studio · PowerShell18.11.2 · 17.14.43 · 16.11.61 · 7.6.9 · 7.5.13 · 7.4.22Patched 25 Oct with .NET.
Ubuntu brotli1.0.9-2ubuntu0.1 · 1.1.0-2ubuntu0.1 · 1.2.0-3ubuntu0.1 · 1.2.0-4ubuntu0.1USN-8956-1 for 22.04 – 26.10.
Go · MuPDF · UEFIToolv1.2.7 · 1.28.0 · A76andybalholm/brotli, MuPDF, UEFITool.
Envoy1.40.0 · 1.39.3 · 1.38.6 · 1.37.81.36.12 also fixed, but unsupported.
Istio1.29.9 · 1.30.6 · 1.31.21.29 is EOL.
Ruby · PHP · Perl · Java0.9.1 · 0.21.1 · 0.023 · 1.24.0brotli gem, PHP ext, IO::Compress::Brotli, brotli4j.

Severity and exploitation

Scores differ because vendors rate different exposure paths. Use the one that matches the component you run.

SourceRatingVector / basis
Google (CNA), shown by GitHub, OSV and NVDCVSS 4.0 9.2 CriticalAV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H — OSV
Microsoft (.NET)CVSS 3.1 8.1; Critical for .NET and Visual Studio, Important for PowerShellAV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H — GHSA-p3jp-9v83-76w9, SecurityWeek
Red HatImportantRed Hat CVE page
Node.jsHighNode.js security release
UbuntuMediumUbuntu CVE tracker

Corrections log

Changes made to the tracker and the Phoenix Security article since the first draft.

Patch status that flipped as vendors shipped

  • The first draft listed the Ruby gem (0.9.1), PHP extension (0.21.1), MuPDF (1.28.0) and UEFITool (A76) as unpatched. All four had shipped fixes.
  • .NET was listed as unpatched until Microsoft's out-of-band release on 25 Oct.

.NET build numbers

  • The article listed only 8.0.33 / 9.0.22 / 10.0.14. Microsoft's advisory gives these as the patched runtime and runtime-pack versions. The matching SDK builds are 8.0.427 / 9.0.320 / 10.0.403 (or 8.0.133 / 9.0.123 / 10.0.114 on the older feature bands), plus 11.0.0-rc.3 for .NET 11 (dotnet/announcements #494). Both are now shown, labelled.
  • Added: Brotli decoding is off by default in .NET, so exposure needs an opt-in (ASP.NET Core request decompression, HttpClient AutomaticDecompression, or BrotliStream/BrotliDecoder).
  • Added: Microsoft scores the .NET path 8.1 (AC:H), below the CNA's 9.2.
  • Added: Visual Studio 2019 / 2022 / 2026 and PowerShell 7.4 / 7.5 / 7.6 fixes.

Severity and exploitation

  • Only the 9.2 Critical score was shown; Red Hat's Important and Microsoft's 8.1 are now included.
  • The public PoC was presented as a working exploit. It reaches RCE only on a deliberately weakened build; standard builds crash.

Version and ecosystem errors

  • Ubuntu 22.04 – 26.10 were marked "needs evaluation"; they are fixed by USN-8956-1 (24.04: libbrotli1 1.1.0-2ubuntu0.1). 16.04 – 20.04 still need evaluation.
  • Bun's affected range is 1.0.21 – 1.4.3.
  • Added fixed bindings: brotli4j 1.24.0, Perl IO::Compress::Brotli 0.023 (its own CVE-2026-115936), Go andybalholm/brotli v1.2.7, plus Debian DSA-6582-1 and Docker node image timing.

Verify list

  • Dropping the Aikido reference left the February fix date and the EPSS figure unsourced. The 27 Feb date now points to the upstream commit; the EPSS figure is not shown until it is re-sourced.
  • Microsoft's Azure Linux patch is reported but not yet confirmed against a Microsoft source, so it isn't in the table.

Broccoli2Shell / HTTP2Shell status table, 27 October 2026

Text version of the timeline above: every tracked product with affected versions, fixed versions and current status.

ProductAffectedFixed inStatus todayNotes
Upstream Brotli (C library)
Brotli 1.2.x1.2.01.2.1Fixed (21 Oct)Tagged 21 Oct, about 19:27 UTC. The fix is commit 0ed4268 from 27 Feb, which nobody had recognised as a security fix.
Brotli 1.1.x1.1.01.1.1Fixed (21 Oct)Backport branch release.
Brotli 1.0.x1.0.3 – 1.0.91.0.10Fixed (21 Oct)The vulnerable early return first appears in 1.0.3.
Brotli ≤ 1.0.2—n/aNot affectedBelow the CVE's affected range (1.0.3 is the lower bound).
JavaScript runtimes
Node.js 26.x< 26.12.126.12.1Fixed (21 Oct)Published 21 Oct, 10:38 UTC. process.versions.brotli still reports 1.2.0 (cherry-picked fix), so check the Node version instead.
Node.js 24.x LTS< 24.22.124.22.1Fixed (21 Oct)Imperva demonstrated RCE on 24.22.0 linux/arm64.
Node.js 22.x LTS< 22.23.422.23.4Fixed (21 Oct)
Node.js 20 / 23 / 25 (EOL)allnoneVulnerable, no fixEnd-of-life lines get no fix. Move to 22, 24 or 26.
Docker official node imagestags before fixed builds22.23.4 · 24.22.1 · 26.12.1Fixed (21 Oct)Slim tags were pushed 21 Oct and full/Alpine tags 22 Oct. Cached base layers stay vulnerable until you pull fresh and rebuild.
Bun1.0.21 – 1.4.31.4.4Fixed (22 Oct)Released 22 Oct, 10:11 UTC, with Brotli 1.2.1. Rebuild any bun build --compile executables.
Electron 42+ (Chromium 148+)—carried via Chromium 148FixedTanium says Electron builds Node against Chromium's Brotli. Electron has made no statement, and its release index still lists Node 24.22.0 / 24.19.0.
Electron ≤ 41 apps≤ 41.xapp vendor updateVulnerable, no fixNeeds a vendor rebuild on a supported Electron version. Check desktop apps such as Slack, Discord and Signal.
GraalJS (graal-nodejs)≤ 25.4.4.1.1master (unreleased)Fix in progressMerged to master 22 Oct. GraalVM ships quarterly, so there is no release yet.
Deno—n/aNot affectedUses the Rust brotli-decompressor, not the C decoder.
Python packages
PyPI Brotli1.0.3 – 1.2.01.2.1Fixed (22 Oct)PYSEC-2026-4322; published 22 Oct, 13:57 UTC. Just having it installed makes requests/urllib3, httpx and aiohttp decode br.
PyPI brotlicffi< 1.2.1.01.2.1.0Fixed (22 Oct)PYSEC-2026-4323; published 22 Oct, 16:19 UTC.
Wheels with vendored decoderslatest releasesnone yetVulnerable, no fix19 popular packages, including Pillow, pyarrow, curl-cffi, pycurl, tensorflow and jaxlib. pip show Brotli won't reveal these copies, and PyPI/OSV don't list them.
brotlipy (abandoned)allnoneVulnerable, no fixWhen installed, it can shadow a fixed Brotli at import time. Uninstall it.
Other language runtimes & bindings
.NET 8 / 9 / 10 (+ 11 RC)runtime < 8.0.33 · < 9.0.22 · < 10.0.14runtime 8.0.33 · 9.0.22 · 10.0.14 · 11.0.0-rc.3 — SDK 8.0.133/8.0.427 · 9.0.123/9.0.320 · 10.0.114/10.0.403Fixed (25 Oct)Out-of-band release 25 Oct. Off by default: ASP.NET Core request decompression and HttpClient automatic decompression are not enabled unless you opt in, or call BrotliStream/BrotliDecoder directly. Microsoft scores it CVSS 3.1 8.1 (AC:H). NativeAOT and self-contained apps must be rebuilt. .NET Framework is not affected.
Visual Studio 2019 / 2022 / 2026< 16.11.61 · < 17.14.43 · < 18.11.216.11.61 · 17.14.43 · 18.11.2Fixed (25 Oct)Patched alongside .NET on 25 Oct. Microsoft rates it Critical for Visual Studio.
PowerShell 7.4 / 7.5 / 7.6< 7.4.22 · < 7.5.13 · < 7.6.97.4.22 · 7.5.13 · 7.6.9Fixed (25 Oct)Patched 25 Oct. Microsoft rates it Important for PowerShell.
Java brotli4j (Netty)< 1.24.01.24.0Fixed (24 Oct)1.24.0 bundles Brotli 1.2.1.
Ruby brotli gem< 0.9.10.9.1Fixed (24 Oct)On RubyGems 24 Oct, 05:31 UTC. Refuses an unpatched system libbrotli.
PHP brotli extension< 0.21.10.21.1Fixed (24 Oct)Bundles Brotli 1.2.1. Reached via brotli_uncompress().
Perl IO::Compress::Brotli0.004001 – < 0.0230.023Fixed (23 Oct)Tracked as CVE-2026-115936. The bundled copy means a system libbrotli update does not fix it.
Go andybalholm/brotli< v1.2.7v1.2.7Fixed (24 Oct)Separate implementation of the same logic flaw, likely crash-only. Release date not stated; listed as fixed by 24 Oct. Used by Traefik and Caddy plugins.
Proxies, service mesh & web servers
Envoy 1.37 – 1.401.39.2 · 1.38.5 · 1.37.71.40.0 · 1.39.3 · 1.38.6 · 1.37.8Fixed (06 Oct)Fixed releases shipped quietly on 6 Oct; the advisory followed 23 Oct. Only affected when the Brotli decompressor filter is configured.
Envoy 1.36 (unsupported)1.36.111.36.12Fixed (06 Oct)Has the fix, but the branch is unsupported. Move to a supported branch.
Istio 1.30 / 1.311.31.0–1.31.1 · 1.30.0–1.30.51.30.6 · 1.31.2Fixed (15 Oct)Only affected when Brotli decompression is enabled (for example via EnvoyFilter).
Istio 1.29 (EOL)1.29.0 – 1.29.81.29.9 (final)Fixed (15 Oct)1.29 reached end of life 15 Oct. Move to a supported line.
ngx_brotli modulebuilds on Brotli < 1.2.1submodule → 1.2.1 (no tag)Fixed (22 Oct)Submodule updated 22 Oct with no release tag; rebuild the module. Mostly compresses, so the decoder is rarely reached.
nginx official Docker imageslibbrotli1 1.1.0-2+b7rebuild pendingVulnerable, no fixnginx itself doesn't decode Brotli, but images used as application bases inherit the library.
Apache mod_brotli / nginx core—n/aNot affectedNeither decodes Brotli by default.
HTTP clients, dev tools & apps
curl for Windows (static)< 8.23.0_48.23.0_4Fixed (24 Oct)Release date not stated; listed as fixed by 24 Oct. Distro libcurl follows the system libbrotli.
Git for Windows2.56.0.windows.3 (Brotli 1.2.0)none yetVulnerable, no fixReleased 22 Oct still listing brotli 1.2.0-1.
VS Code Server< 1.143.11.143.1Fixed (24 Oct)Bundles Node 24.22.1. Date not stated; listed as fixed by 24 Oct.
Kibana 9.5 / 9.4 / 8.199.5.5 · 9.4.8 · 8.19.23 (Node 24.21.0)next patch (Node 24.22.1)Fix in progressBranches were bumped 21 Oct, but no fixed artifact has been published. Issue #299985 is open.
UEFITool< A76A76Fixed (24 Oct)Bundles Brotli 1.2.1.
EDK II firmwarebundled 1.2.0issue #13378Vulnerable, no fixDecodes compressed firmware sections. Cherry-pick 0ed4268.
MuPDF1.27.x and earlier1.28.0FixedFixed: 1.28.x picked up the upstream fix in April. Upgrade from 1.27.x, which is not being patched.
7-Zip-zstd · p7zipbundled 1.2.0 · 1.0.9none yetVulnerable, no fixReached when a user opens a .br file or archive. 7-Zip-zstd tracks it as issue #579.
NanaZip≤ 7.0.1873.0main 3da1c6a (unreleased)Fix in progressFixed on main; release pending. Date shows when it was first observed.
libjxl≤ v0.12.0main PR #5062 (unreleased)Fix in progressFixed on main; release pending.
woff2 (Makefile build) · v8-jsibundled 1.0.3 · 1.2.0none yetVulnerable, no fixThe woff2 CMake build links the system library instead (issue #207).
Databases & data engines
DuckDBvendored 1.1.0PR #27791 (open)Fix in progressReached by decoding Brotli-compressed Parquet. Fix PR opened 25 Oct.
ClickHouseown forkPR #127419 (open)Fix in progressReached through HTTP bodies, files and Parquet.
YDBbundledmain 343f6be (unreleased)Fix in progressFixed on main 23 Oct; release pending.
Apache Arrow / pyarrowbundled 1.0.9issue #55166Vulnerable, no fixBrotli-compressed Parquet. Only an issue is open; there is no fix yet.
Browsers
Chrome / Edge / WebView2 148+< 148148.0.7778.96+FixedChrome has carried the fix since 5 May. Edge and WebView2 are inferred from Chromium.
Firefox 150 · ESR 140.10 · ESR 115.35< 150 (non-ESR)150 · 140.10 · 115.35FixedFixed before disclosure (MFSA 2026-30). Thunderbird is inferred.
RHEL Firefox / Thunderbird pkgsRHEL 8 / 9 / 10none listedVulnerable, no fixRed Hat lists these as affected. Amazon Linux lists its Firefox as not affected.
Linux distributions & package managers
Debian 12 / 131.0.9-2 · 1.1.0-21.0.9-2+deb12u1 · 1.1.0-2+deb13u1Fixed (24 Oct)DSA-6582-1. Debian's nodejs uses the system Brotli, so the brotli update fixes Node too. Restart processes afterwards.
Debian sid1.2.0-41.2.0-4.1Fixed (24 Oct)
Debian forky (testing)1.2.0-4none yetVulnerable, no fixWaiting to migrate from sid.
Alpine 3.21 – 3.24, edgebrotli < fixed1.1.1-r0 · 1.2.1-r0Fixed (24 Oct)1.1.1-r0 for 3.21/3.22 and 1.2.1-r0 for 3.23/3.24/edge. nodejs-current 26.12.1-r0.
Ubuntu 22.04 – 26.10 brotli1.0.9-2 · 1.1.0-2 · 1.2.0-3 · 1.2.0-41.0.9-2ubuntu0.1 · 1.1.0-2ubuntu0.1 · 1.2.0-3ubuntu0.1 · 1.2.0-4ubuntu0.1Fixed (26 Oct)USN-8956-1, 26 Oct. 24.04 LTS is fixed in libbrotli1 1.1.0-2ubuntu0.1. Ubuntu priority: Medium.
Ubuntu 16.04 – 20.04 brotli1.0.xnone listedNo vendor statementStill "Needs evaluation" on Ubuntu's tracker as of 27 Oct.
Ubuntu 20.04 nodejsvendored Brotlinone listedVulnerable, no fixOn 22.04 and later, nodejs uses the system Brotli.
RHEL 8 / 9 / 10brotli · nodejsno erratumVulnerable, no fixRated Important. RHEL 8 nodejs:24 bundles Brotli 1.2.0 in libnode.so, which is under re-evaluation in Bugzilla.
Red Hat Hardened Images—RHSA-2026:87420Fixed (24 Oct)Red Hat's only fixed product so far.
OpenShift 4 / Satellite 6bundled Brotlino erratumVulnerable, no fixListed as affected, with no errata.
Fedora Rawhide / ELNbrotli < 1.2.11.2.1Fixed (24 Oct)
Fedora 45brotli < 1.2.1brotli-1.2.1-1.fc45Fix in progressFEDORA-2026-6a639d1308 is in updates-testing.
Fedora 43 / 44brotli < 1.2.1none yetVulnerable, no fix
openSUSE Tumbleweedbrotli · nodejs241.2.1-1.1 · 24.22.1-1.1Fixed (24 Oct)openSUSE-Tumbleweed-2026-12232 / 12248.
SLES 15 SP6 / SP7 nodejs22< 22.23.422.23.4-150700.3.21.1Fix in progressSUSE lists it as in QA. Its other Node and brotli packages are still under analysis.
Amazon Linux 2023 brotli · nodejs24—ALAS2023-2026-3334 · -3330Fixed (24 Oct)
Amazon Linux 2023 nodejs / nodejs20allNo Fix PlannedVulnerable, no fixMove to the nodejs24 package.
Amazon Linux 2027 Previewbrotli · nodejs24Pending FixFix in progress
Homebrew brotli + nodebrotli < 1.2.11.2.1 · node 26.12.1 · @24 · @22Fixed (22 Oct)Bottles published 22 Oct. Node formulas link the shared brotli formula.
Cloud & hosting platforms
Azure App Service (Linux)built-in Node22.23.4 · 24.22.1Fixed (22 Oct)Rollout complete on both release channels 22 Oct.
Azure Functions (Linux)built-in Nodepatched runtimeFixed (24 Oct)Rollout reported complete 24 Oct.
Azure App Service / Functions (Windows)built-in Node22.23.4 · 24.22.1Fix in progressRollout started 22 Oct and is not complete. A Windows Consumption host still ran Node 24.19.0 on 23 Oct.
Herokuolder buildpacks26.12.1 · 24.22.1 · 22.23.4Fixed (21 Oct)Available 21 Oct; you must redeploy to pick it up.
Vercel managed runtimes22.x / 24.x / 20.xpatched runtime rolloutFix in progressRollout in progress. Node 20 projects must move to 22/24.
AWS Lambda managed runtimesnodejs22.x / 24.xdepends on update modeNo vendor statementNo AWS bulletin found. Auto mode updates on its own; Function update and Manual modes, and container images, need action.
Google Cloud Run / Functionsnodejs22 / 24—No vendor statementNo issue-specific notice found.
Netlify · Render——No vendor statementNo issue-specific notice found. Render defaults new services to a pre-fix 24.x unless you pin a version.
Cloudflare Workers (workerd)node:zlib Brotli—No vendor statementCloudflare has published WAF rules but no runtime statement.
Edge mitigations (inbound only)
Vercel WAF—managed rulesWAF mitigation liveDeployed 21 Oct. Does not cover responses your code fetches.
Imperva WAF—ruleWAF mitigation liveRule announced alongside Imperva's 22 Oct research post.
Azure WAF (App GW / Front Door)—DRS 2.2 rule 920450 + custom ruleWAF mitigation liveRule 920450 blocks in Prevention mode. A custom regex rule covers older rulesets and Front Door Standard.
Cloudflare Managed Ruleset—…ca706f3c · …402fe5bbWAF mitigation liveBoth rules ship in Log mode by default. Override to Block.

Broccoli2Shell (CVE-2026-111497) FAQ

What is Broccoli2Shell (HTTP2Shell, CVE-2026-111497)?

Broccoli2Shell, also called HTTP2Shell or Node2Shell, is CVE-2026-111497: an out-of-bounds write in the Google Brotli decoder (c/dec/decode.c) affecting Brotli 1.0.3 to 1.2.0. Any software that decodes attacker-controlled Brotli data, such as HTTP request or response bodies with Content-Encoding: br, can be exposed.

Which Brotli versions are vulnerable and which are fixed?

Google Brotli 1.0.3 through 1.2.0 are vulnerable. Fixed releases are 1.0.10, 1.1.1 and 1.2.1, published on 21 October 2026. Versions 1.0.2 and earlier are below the affected range.

Which Node.js versions fix HTTP2Shell?

Node.js 22.23.4, 24.22.1 and 26.12.1, released on 21 October 2026, fix CVE-2026-111497. Node.js 20, 23 and 25 are end of life and will not receive a fix.

Are Bun, Python and .NET affected?

Yes. Bun 1.0.21 to 1.4.3 is affected and fixed in 1.4.4. Python Brotli is fixed in 1.2.1 and brotlicffi in 1.2.1.0; several wheels that vendor their own decoder (Pillow, pyarrow, curl-cffi, pycurl) remained unfixed on 26 October 2026. .NET is fixed in 8.0.33, 9.0.22 and 10.0.14; .NET Framework is not affected. Deno is not affected.

What can I do if I cannot upgrade yet?

Reject inbound requests whose Content-Encoding includes br (case-insensitive, including inside lists) at the proxy or load balancer. For outbound traffic, remove br from Accept-Encoding and reject br responses before decoding. Cloudflare's managed WAF rules ship in Log mode and must be overridden to Block; Azure WAF DRS 2.2 rule 920450 blocks in Prevention mode.

How many products are fixed as of 27 October 2026?

Of 83 tracked products, 42 are fixed, 12 have a fix in progress, 17 are vulnerable with no fix, 5 have no vendor statement, 3 are not affected and 4 have WAF mitigations live.

How severe is CVE-2026-111497?

Google, as the CNA, scores it CVSS 4.0 9.2 Critical. Microsoft scores the .NET path CVSS 3.1 8.1 with high attack complexity (AC:H), because exposure needs an opt-in configuration. It rates it Critical for .NET and Visual Studio and Important for PowerShell. Red Hat rates it Important, Node.js rates it High and Ubuntu rates it Medium.

Is there a working public exploit?

The first public proof of concept (22 October) reached code execution only on a deliberately weakened test build; on a standard build it crashed the process and leaked limited memory. Imperva separately reported unreliable code execution on the official Node.js 24.22.0 Linux arm64 image. Microsoft lists the flaw as publicly disclosed, not exploited, with exploitation "more likely". Treat crash-level denial of service as the realistic floor.

Share-ready excerpts

Copy and post. Figures are as of 27 October 2026.

LinkedIn post
Broccoli2Shell / HTTP2Shell (CVE-2026-111497) is an out-of-bounds write in the Google Brotli decoder, affecting Brotli 1.0.3 to 1.2.0. Fixes landed on 21 October 2026: Brotli 1.0.10 / 1.1.1 / 1.2.1 and Node.js 22.23.4 / 24.22.1 / 26.12.1. Bun 1.4.4, Python Brotli 1.2.1 and the .NET 8.0.33 / 9.0.22 / 10.0.14 runtimes (with Visual Studio and PowerShell) followed. As of 27 October, 42 of 83 tracked products are fixed and 17 are still vulnerable with no fix, mostly through bundled Brotli copies (Git for Windows, DuckDB, ClickHouse, Arrow, Kibana, the nginx Docker images). Can't upgrade yet? Reject inbound Content-Encoding: br, strip br from outbound Accept-Encoding, and set Cloudflare's managed rules to Block (they ship in Log mode). Day-by-day fix tracker by Phoenix Security: https://http2shell.pplx.app/ #HTTP2Shell #Broccoli2Shell #CVE2026111497 #Brotli #NodeJS #AppSec #SupplyChainSecurity
X / Bluesky post
Broccoli2Shell / HTTP2Shell (CVE-2026-111497): Brotli 1.0.3–1.2.0 decoder OOB write. Fixed: Brotli 1.2.1, Node 22.23.4 / 24.22.1 / 26.12.1, Bun 1.4.4. 42/83 products fixed, 17 still vulnerable (mostly bundled copies). Live tracker: https://http2shell.pplx.app/
Key stat
As of 27 October 2026, 42 of 83 products tracked for Broccoli2Shell / HTTP2Shell (CVE-2026-111497) are fixed, 12 have a fix in progress and 17 remain vulnerable with no fix. (Phoenix Security, https://http2shell.pplx.app/)
One-line summary
Broccoli2Shell (HTTP2Shell, Node2Shell, CVE-2026-111497) is an out-of-bounds write in Google Brotli's decoder (c/dec/decode.c) in versions 1.0.3–1.2.0, fixed in Brotli 1.0.10, 1.1.1 and 1.2.1 on 21 October 2026.
Cite this tracker
Phoenix Security. "Broccoli2Shell - HTTP2SHELL (CVE-2026-111497) Fix Tracker." Updated 27 October 2026. https://http2shell.pplx.app/

Sources

  1. Phoenix Security: HTTP2Shell / Node2Shell analysis
  2. Phoenix Security: HTTP2Shell expansion (bundled copies)
  3. NVD CVE-2026-111497
  4. Google Brotli v1.2.1 release
  5. Brotli fix commit 0ed4268
  6. Node.js October 2026 security releases
  7. Convika: Node.js October 2026 release
  8. Safeguard: patching servers and images
  9. Bun advisory GHSA-663w-cv8g-jj2p
  10. Tanium: HTTP2Shell fix status
  11. Brandefense: one flaw, many stacks
  12. Envoy advisory GHSA-3wvj-j6qm-62mr
  13. Istio ISTIO-SECURITY-2026-007
  14. .NET advisory (dotnet/announcements #494)
  15. .NET OOB release (dotnet/announcements #496)
  16. oss-security: IO::Compress::Brotli CVE-2026-115936
  17. CyberNative: 19 PyPI packages ship unfixed decoders
  18. Electron stable releases
  19. elastic/kibana issue #299985
  20. nginx/docker-nginx issue #1072
  21. blacklens: beyond Node.js
  22. DuckDB PR #27791
  23. Debian security tracker
  24. Ubuntu CVE-2026-111497
  25. Red Hat CVE-2026-111497
  26. Red Hat Bugzilla CVE-2026-111497
  27. Mallory: Red Hat OpenShift/Satellite exposure
  28. Red Hat Bugzilla 2560274 (Fedora 45 update)
  29. SUSE CVE-2026-111497
  30. Amazon Linux Security Center
  31. Azure App Service Linux update
  32. Azure App Service Windows update
  33. Microsoft Q&A: Functions Windows Consumption
  34. Vercel Node.js security bulletin
  35. Cloudflare emergency WAF release
  36. Microsoft: Azure WAF guidance
  37. Imperva: Node2Shell
  38. Swamp Club: HTTP2Shell scanner
  39. Microsoft .NET advisory GHSA-p3jp-9v83-76w9 (CVSS 8.1)
  40. .NET Blog: October 2026 out-of-band updates
  41. SecurityWeek: Microsoft, Node.js and Python patches
  42. BornCity: .NET, Visual Studio and PowerShell builds
  43. Ubuntu USN-8956-1 (via Ubuntu CVE tracker)
  44. OSV: CVE-2026-111497 (CVSS 4.0 9.2)
  45. The Hacker News: Node2Shell RCE demonstrations
  46. HeroDevs: PoC and Imperva arm64 RCE timeline
  47. iTnews: embedded far beyond Node.js

Status reflects what each vendor or tracker published by 27 Oct 2026. "Fixed by" dates mark when a source first listed the fix if the vendor gave no release date. "In progress" covers merged-but-unreleased fixes, packages in QA or testing, and rollouts that are still running.