Skip to main content

Node.js CVE-2026-111497

| EUVDEUVD-2026-108169 CRITICAL
Unchecked Return Value (CWE-252)
9.2
CVSS 4.0 · Vendor
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send crafted brotli stream to Node.js service
  2. Exploit
    Trigger block-switch error in brotli decoder
  3. Execution
    Out-of-bounds write corrupts process memory
  4. Impact
    Achieve remote code execution

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Return value checking
Exploitation Conditions

Exploitation requires the target Node.js application to decompress attacker-controlled brotli-compressed data through the bundled brotli decoder - for example handling responses/requests with Content-Encoding: br, or passing untrusted input to zlib.brotliDecompress/BrotliDecompress. The CVSS 4.0 AT:P metric reflects that a specific condition (a malformed brotli stream hitting the BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH error path) must be met rather than the flaw triggering on any input. Limiting factors: deployments that never feed untrusted brotli data to the decoder are not exposed; no authentication (PR:N) or user interaction (UI:N) is required where untrusted brotli is processed. Affected brotli versions are 1.1.0 before 1.1.1, 1.0.3 before 1.0.10, and 1.2.0 before 1.2.1; the complete fix is upgrading to the patched Node.js release v26.12.1 (or a brotli build with the cherry-picked fix) as stated by the vendor. The exact memory-corruption trigger mechanism is not fully described in the available sources.

Impact

This is a genuine high priority, not a high-CVSS-but-low-risk issue. The CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N, score 9.2) describes a network-reachable flaw requiring no privileges (PR:N) and no user interaction (UI:N), with high confidentiality, integrity and availability impact (VC:H/VI:H/VA:H) consistent with the vendor advisory's claim of remote code execution. The one tempering signal is AT:P (attack requirement present), meaning exploitation depends on a specific condition - the application must feed a malformed, attacker-controlled brotli stream through the bundled decoder - rather than being trivially triggerable against any default install. The vuln.today decision label is act_now, reinforcing urgency. Counterbalancing signals: there is NO CISA KEV listing, so this is not confirmed actively exploited, and NO EPSS score was provided in the input, so probabilistic exploitation likelihood cannot be assessed here. A PoC reference is present but is explicitly unverified as working exploit code. Given Node.js's ubiquity and the unauthenticated-network RCE potential, this should be patched urgently even though active in-the-wild exploitation is not confirmed. Note the CWE (CWE-252, unchecked return value) describes the root cause while the advisory describes the consequence as an out-of-bounds write enabling RCE - consistent, but worth verifying the exact impact ceiling with the vendor.

Exploit ScenarioDerived

A remote attacker sends crafted, malformed brotli-compressed data to a Node.js application that decompresses untrusted brotli input (for example a service accepting Content-Encoding: br, or code calling zlib.brotliDecompress on user-supplied data). The malformed stream triggers the block-switch error path in the bundled brotli decoder, causing an out-of-bounds write that corrupts memory and, per the vendor advisory, can lead to remote code execution. A public PoC reference exists; it is not verified as working exploit code.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
1 PoC candidate (unverified) Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 22, 2026

Remote code execution is possible in Node.js releases that bundle a vulnerable Brotli decoder: a malformed brotli-compressed stream can trigger an out-of-bounds write when decompressed, corrupting memory in the process handling the data. Exposure is limited to deployments that actually pass attacker-controlled brotli data into the decoder - for example services honouring Content-Encoding: br on untrusted requests or responses, or applications calling zlib.brotliDecompress/BrotliDecompress on untrusted input - and no authentication or user interaction is required in that scenario. The flaw is rated High with a CVSS 4.0 score of 9.2 (assessed CVSS 3.1: AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:H), no CISA KEV listing confirms active exploitation, and a public PoC reference exists but is not verified as working exploit code; the vendor fix is Node.js v26.12.1, released 2026-10-21.

RemediationAI

Upgrade to Node.js v26.12.1 (released 2026-10-21), which contains the Brotli cherry-pick 0ed4268a4401abcb44720963 and the src change that exposes BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH; downstreams maintaining Brotli independently should move to 1.0.10, 1.1.1 or 1.2.1 respectively, or apply the same upstream commit - the vendor presents upgrading as the complete fix. Where an immediate upgrade is not possible, the practical compensating control is to stop feeding untrusted brotli data to the decoder: strip or reject Content-Encoding: br at the reverse proxy or HTTP client layer for untrusted peers, and avoid calling zlib.brotliDecompress/BrotliDecompress on externally supplied buffers, at the cost of losing brotli compression benefits and larger transfer sizes for those paths. Services that never decode attacker-controlled brotli payloads are not exposed and can be scheduled for normal patch cadence, though the fix should still be applied. Advisory URLs: https://nodejs.org/en/blog/vulnerability/october-2026-security-releases#nodejs-brotli-decoder-out-of-bounds-write-permits-remote-code-execution-cve-2026-111497---high and https://github.com/nodejs/node/releases/tag/v26.12.1.

Affected VersionsENISA

Brotli 1.1.0 <1.1.1
Brotli 1.0.3 <1.0.10
Brotli 1.2.0 <1.2.1

Affected Packages

euvd brotli fix: 1.0.10, 1.1.1, 1.2.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The issue lives in the Brotli compression library that Node.js ships in its deps/brotli tree and exposes through the zlib module and HTTP content-encoding handling. The root cause class is CWE-252 (Unchecked Return Value): the Node.js side did not surface the decoder's BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH status, so a stream that terminates a meta-block with an unexpected block-switch condition was not reported as a decoding error and processing continued into an out-of-bounds write. The upstream library fix is cherry-pick 0ed4268a4401abcb44720963, paired in the Node.js release with a change that explicitly exposes BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH so callers can detect this condition. The CVSS 4.0 AT:P metric reflects that a specific precondition must be met - the malformed stream has to reach that particular error path - rather than any brotli input producing corruption; the precise memory-corruption trigger mechanism is not fully described in the available sources. Affected Brotli builds per EUVD are 1.0.3 before 1.0.10, 1.1.0 before 1.1.1, and 1.2.0 before 1.2.1.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CNA) PRIMARY 9.2 CRITICAL
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
vuln.today AI 8.1 HIGH

AV:N/PR:N/UI:N as remote unauthenticated; AC:H folds in the 4.0 AT:P requirement for a malformed attacker-controlled brotli stream; C/I/A:H from potential RCE.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (CNA).

CVSS VectorVendor

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
CVE Published
Oct 21, 2026 - 10:38 github-releases
CRITICAL 9.2
CVE Published
Oct 21, 2026 - 10:38 github-releases
UNKNOWN (no severity yet)

Description PRE-NVD

Disclosed via GitHub release of nodejs/node. NVD scoring and full description are pending.

Technical POC Analysis

CWE-252 - Unchecked Return Value.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 PoC candidate from github (unverified)

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A critical memory corruption vulnerability in Node.js's Brotli decompression library (CVE-2026-111497) can allow remote code execution in any service that processes attacker-controlled Brotli-compressed data, such as web applications honoring 'Content-Encoding: br' from untrusted sources. This affects internet-facing or partner-integrated Node.js services, potentially enabling full system compromise and data breach, though exploitation requires a specific configuration and no active exploitation has been confirmed. Leadership should prioritize remediation to protect critical business services and sensitive data.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Ubiquitous
Node.js runtime with bundled brotli, deployed across a huge fraction of server environments
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

66
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy