CVE-2026-25547: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-25547 is a denial-of-service (DoS) vulnerability in the @isaacs/brace-expansion npm package (a hybrid CJS/ESM TypeScript fork of brace-expansion) caused by unbounded brace range expansion. All versions up to and including 5.0.0 are affected; the issue was patched in version 5.0.1. The vulnerability was published on February 3, 2026, and assigned a CVSS v4.0 base score of 9.2 (Critical) by the package maintainer, though the GitHub Advisory Database rates it 8.7 (High) under a slightly different scoring configuration (Github Advisory, Security Advisory).

Technical details

The root cause is classified as CWE-1333 (Inefficient Regular Expression Complexity) / CWE-400 (Uncontrolled Resource Consumption): the library expands brace expressions eagerly and synchronously without any upper bound or complexity limit on the number of combinations generated. When a pattern containing repeated numeric brace ranges is provided (e.g., {0..99}{0..99}{0..99}{0..99}{0..99}), the library generates up to 100^5 = 10,000,000,000 combinations before returning control to the caller, overwhelming the Node.js event loop and heap memory. No authentication or special privileges are required — a single crafted network request containing a small malicious payload is sufficient to trigger the condition. A public proof-of-concept script is included in the GitHub security advisory (Github Advisory, Security Advisory).

Impact

Successful exploitation causes complete availability loss of the targeted Node.js service: the process freezes, exhausts CPU and heap memory, blocks the event loop, and typically crashes with a FATAL ERROR: JavaScript heap out of memory. There is no confidentiality or integrity impact. Any application or downstream dependency that passes untrusted input to @isaacs/brace-expansion is vulnerable, including numerous IBM enterprise products (App Connect Enterprise, API Connect, Event Automation/Processing, watsonx Orchestrate, QRadar Suite Software, and Instana Observability) (Github Advisory, IBM Event Processing).

Exploitability

A public proof-of-concept exploit is available in the GitHub security advisory and can be reproduced with a minimal Node.js script. No authentication is required, and the attack can be launched remotely over the network with a very small payload. There is no evidence of active in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.042% (13th percentile), indicating a currently low probability of exploitation in the next 30 days. The vulnerability is not listed in the CISA KEV catalog (Github Advisory, Security Advisory).

Exploitation steps

  1. Identify target: Locate a publicly accessible application or API endpoint that uses @isaacs/brace-expansion (version ≤ 5.0.0) to process user-supplied input — for example, a file search, glob-matching, or template expansion feature.
  2. Craft malicious payload: Construct a brace expansion pattern designed to trigger exponential combination generation, such as {0..99}{0..99}{0..99}{0..99}{0..99}, which produces 10 billion combinations.
  3. Deliver payload: Submit the crafted pattern as input to the vulnerable endpoint via a single HTTP request (e.g., as a query parameter, request body field, or API argument) — no authentication is needed.
  4. Trigger resource exhaustion: The library synchronously attempts to expand all combinations, consuming all available CPU cycles and heap memory, blocking the Node.js event loop.
  5. Achieve DoS: The Node.js process crashes with FATAL ERROR: JavaScript heap out of memory, taking down the service for all users until it is restarted (Github Advisory, Security Advisory).

Indicators of compromise

  • Logs: Node.js process logs showing FATAL ERROR: JavaScript heap out of memory or sudden process termination; application logs recording requests containing patterns with repeated numeric brace ranges (e.g., {0..99}{0..99}...).
  • Process: Node.js process exhibiting 100% CPU utilization followed by an out-of-memory crash; unexpected service restarts or container/pod restarts in orchestrated environments.
  • Network: Single HTTP requests with unusually small payloads (a few dozen bytes) that correlate with service crashes; repeated requests to the same endpoint from the same source IP triggering repeated crashes.

Mitigation and workarounds

The primary remediation is to upgrade @isaacs/brace-expansion to version 5.0.1 or later, which introduces bounds checking on brace expansion complexity (Security Advisory). IBM has released security updates for all affected products: IBM Event Processing, IBM App Connect Enterprise (Certified Container), IBM API Connect, IBM watsonx Orchestrate, IBM QRadar Suite Software, and IBM Instana Observability — administrators should apply the relevant IBM security bulletins (IBM Event Processing, IBM API Connect). As interim workarounds, implement strict input validation and length/complexity limits on any user-supplied data processed by brace-expansion, and consider rate limiting or WAF rules to restrict requests containing repeated brace range patterns.

Community reactions

Heise Online reported on the vulnerability in the context of IBM App Connect Enterprise being crashable by attackers, noting the broad impact across IBM's product portfolio (Heise). The vulnerability was also noted in the Node.js community retrospective for the week of February 8, 2026, reflecting awareness among Node.js ecosystem maintainers. Multiple Linux distributions (openSUSE, Red Hat, Rocky Linux, AlmaLinux, Amazon Linux) issued security advisories and package updates, indicating broad downstream impact across the ecosystem.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

node-brace-expansion

Affected

sid

node-brace-expansion: 2.0.3+~1.1.2-2

Fixed

trixie

node-brace-expansion

Affected

Ubuntu

Unknown

bionic (esm-apps)

node-brace-expansion

Unknown

devel

node-brace-expansion

Unknown

focal (esm-apps)

node-brace-expansion

Unknown

jammy

node-brace-expansion

Unknown

jammy (esm-apps)

node-brace-expansion

Unknown

noble

node-brace-expansion

Unknown

noble (esm-apps)

node-brace-expansion

Unknown

resolute

node-brace-expansion

Unknown

RHEL / CentOS

Fixed

OpenShift

openshift4/ose-console

Affected

RHEL 8

:appstream:nodejs:22/nodejs/nodejs-0:22.22.2-1.module%2Bel8.10.0%2B24148%2B847b6786

Fixed

RHEL 9

:appstream:nodejs:22/nodejs/nodejs-0:22.22.2-1.module%2Bel9.6.0%2B24196%2B39669d4e

Fixed

RHEL 10

nodejs22-1:22.22.2-2.el10_0.src

Fixed

Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-966w-4vpf-p7hcHIGH7.1
  • JavaScript logoJavaScript
  • @aloma.io/aloma
NoYesOct 25, 2026
GHSA-mrwp-f3q8-3g9pMEDIUM5.9
  • JavaScript logoJavaScript
  • follow-redirects
NoYesOct 25, 2026
GHSA-hfm3-x63j-7fxpHIGHN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/migrate
NoYesOct 25, 2026
GHSA-6244-vvv9-76f5MEDIUMN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/plugin
NoYesOct 25, 2026
GHSA-q53q-qg98-p9jfHIGHN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management