GHSA-9v8h-qqgm-4m35 BIT-brotli-2026-111497 BIT-dotnet-2026-111497 BIT-dotnet-sdk-2026-111497 BIT-node-2026-111497 BIT-node-min-2026-111497 BIT-powershell-2026-111497 CVE-2026-111497 PYSEC-2026-4322 PYSEC-2026-4323
Brotli: Out-of-bounds write in the Brotli decoder ("Node2Shell") also affects the PyPI Brotli package
- Severity
- 9.2 / 10
- Critical · CVSS 4.0
- Exploit chance (EPSS)
- 82.64%
- Chance of exploitation in the next 30 days. Higher than 99.67% of scored vulnerabilities.
- Known exploited
- Yes
- In CISA's catalog since Oct 27, 2026
- Weakness
- CWE-252 Unchecked Return Value
- Fix
- Available
- 2 packages have a fixed version
Description
A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli versions 1.0.3 through 1.2.0 on all platforms allows a remote unauthenticated attacker to corrupt adjacent decoder state memory, disclose sensitive memory contents, cause a denial of service, or potentially execute arbitrary code using a crafted Brotli-compressed stream.
Users need to update any Brotli libraries or binaries between 1.0.3 through 1.2.0 to the latest available version: 1.0.10 or 1.1.1 or 1.2.1.
Affected versions
PyPI
| Package | Vulnerable | Fixed in |
|---|---|---|
| brotli | >= 1.0.3, < 1.2.1 |
1.2.1 |
| brotli | >= 1.0.3, < 1.2.1 |
1.2.1 |
| brotli | < 1.2.1 |
1.2.1 |
| brotlicffi | >= 1.0.3, < 1.2.1.0 |
1.2.1.0 |
| brotlicffi | >= 1.0.3, < 1.2.1.0 |
1.2.1.0 |
| brotlicffi | < 1.2.1.0 |
1.2.1.0 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
brotli PyPI → 1.2.1
- pip
pip install --upgrade "brotli>=1.2.1"- poetry
poetry add "brotli>=1.2.1"- uv
uv add "brotli>=1.2.1"
brotlicffi PyPI → 1.2.1.0
- pip
pip install --upgrade "brotlicffi>=1.2.1.0"- poetry
poetry add "brotlicffi>=1.2.1.0"- uv
uv add "brotlicffi>=1.2.1.0"
Severity breakdown
CVSS 4.0 9.2
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
- Attack vector
- Network
- Attack complexity
- Low
- Attack requirements
- Present
- Privileges required
- None
- User interaction
- None
- Confidentiality (vulnerable system)
- High
- Integrity (vulnerable system)
- High
- Availability (vulnerable system)
- High
- Confidentiality (subsequent systems)
- None
- Integrity (subsequent systems)
- None
- Availability (subsequent systems)
- None
CVSS 3.1 9.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Weakness
CWE-252: Unchecked Return Value
The product does not check the return value from a method or function, which can prevent it from detecting unexpected states and conditions.
How to prevent it
- Implementation: Check the results of all functions that return a value and verify that the value is expected.
- Implementation: For any pointers that could have been modified or provided from a function that can return NULL, check the pointer for NULL before use. When working with a multithreaded or otherwise asynchronous environment, ensure that proper locking APIs are used to lock before the check, and unlock when it has finished [REF-1484].
- Implementation: Ensure that you account for all possible return values from the function.
- Implementation: When designing a function, make sure you return a value or throw an exception in case of an error.
References
Advisories
- github.com/advisories/GHSA-9v8h-qqgm-4m35
- nvd.nist.gov/vuln/detail/CVE-2026-111497
- cert-portal.siemens.com/productcert/html/ssa-045512.html
- cert-portal.siemens.com/productcert/html/ssa-443410.html
- cert-portal.siemens.com/productcert/html/ssa-898633.html
- ellio.tech/en/blog/node2shell-cve-2026-111497-rce-on-stock-nodejs-builds
Fixes and patches
Packages
Other links
- nodejs.org/en/blog/vulnerability/october-2026-security-releases
- github.com/google/brotli/releases/tag/v1.0.10
- github.com/google/brotli/releases/tag/v1.1.1
- github.com/google/brotli/releases/tag/v1.2.1
- github.com/pypa/advisory-database/tree/main/vulns/brotli/PYSEC-2026-4322.yaml
- github.com/pypa/advisory-database/tree/main/vulns/brotlicffi/PYSEC-2026-4323.yaml
- nodejs.org/en/blog/vulnerability/october-2026-security-releases
- opensourcemalware.com/blog/node2shell-affects-python
- pypi.org/project/Brotli
- pypi.org/project/brotlicffi
- cve.org/CVERecord
- github.com/dotnet/announcements/issues/494
- cisa.gov/known-exploited-vulnerabilities-catalog
- aikido.dev/blog/node2shell-nodejs-brotli-rce-cve-2026-111497
- patchtheplanet.org/brotli
- lists.debian.org/debian-lts-announce/2026/10/msg00049.html
- github.com/andybalholm/brotli/releases/tag/v1.2.7
- ellio.tech/en/blog/node2shell-cve-2026-111497-rce-on-stock-nodejs-builds
- broccoli2shell.com
- openwall.com/lists/oss-security/2026/10/23/25
- openwall.com/lists/oss-security/2026/10/24/6
- openwall.com/lists/oss-security/2026/10/26/12
- openwall.com/lists/oss-security/2026/10/26/13
- openwall.com/lists/oss-security/2026/10/26/16
Timeline
- Published
- Added to CISA's Known Exploited Vulnerabilities catalog
- Last updated by the source
- Latest EPSS score
- Remediation due for U.S. federal agencies
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-5v8v-66v8-mwm7 Integer overflow in the bundled Brotli C library | Critical | Also affects brotli |
| GHSA-rfgv-xxqx-mfg5 undici vulnerable to Denial of Service via unrequested WebSocket subprotocol | High | Same weakness, CWE-252 |
| EEF-CVE-2026-78699 rename_tenant returns :ok on a failed rename, enabling cross-tenant access in AshPostgres | Not rated yet | Same weakness, CWE-252 |
| GHSA-9mr8-pwpw-3j2w Microsoft Security Advisory CVE-2026-62909 – .NET Elevation of Privilege Vulnerability | High | Same weakness, CWE-252 |
| GHSA-qh5g-q395-cx4j ImageMagick: Heap-use-after-free via XMP profile could result in a crash | Medium | Same weakness, CWE-252 |
| GHSA-jcqp-6r6f-3mfx ImageMagick: Heap Buffer Over-Write in MIFF encoder when using LZMA compression | Medium | Same weakness, CWE-252 |
| GHSA-wh8p-h9hw-x2mc uutils coreutils has an Unchecked Return Value Issue | Low | Same weakness, CWE-252 |
| GHSA-wj8w-pjxf-9g4f ImageMagick has uninitialized pointer dereference in JBIG decoder | High | Same weakness, CWE-252 |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor