npm package report

Is @isaacs/brace-expansion safe?

1 known vulnerability, worst severity HIGH.

// reach

1 direct dependencies

none carry a known advisory

    1 packages depend on it

    an advisory here reaches each of them

    Create a free accountfor every dependency path, dependent and what to upgrade
    // ai model usage

    Tracked for PyPI packages. HuggingFace models declare Python dependencies, so npm packages are not covered.


    cvss
    9.2
    critical

    CVSS v4.0 base score out of 10; GitHub rates it HIGH

    epss
    0.54%
    medium

    chance of exploitation in 30 days, 45th percentile of all CVEs

    xyz score
    4.1
    medium

    CyberXYZ composite out of 10

    fig. 01 — GHSA-7h2j-956f-4vf2, the advisory selected below

    // 1 advisories

    GHSA-7h2j-956f-4vf2

    HIGHGitHub ratingCVE-2026-25547
    // summary

    @isaacs/brace-expansion is vulnerable to a Denial of Service (DoS) issue caused by unbounded brace range expansion. When an attacker provides a pattern containing repeated numeric brace ranges, the library attempts to eagerly generate every possible combination synchronously. Because the expansion grows exponentially, even a small input can consume excessive CPU and memory and may crash the Node.js process.

    // details

    The vulnerability occurs because @isaacs/brace-expansion expands brace expressions without any upper bound or complexity limit. Expansion is performed eagerly and synchronously, meaning the full result set is generated before returning control to the caller.

    For example, the following input:

    {0..99}{0..99}{0..99}{0..99}{0..99}

    produces:

    100^5 = 10,000,000,000 combinations

    This exponential growth can quickly overwhelm the event loop and heap memory, resulting in process termination.

    // proof of concept

    The following script reliably triggers the issue.

    Create poc.js:

    const { expand } = require('@isaacs/brace-expansion');
    
    const pattern = '{0..99}{0..99}{0..99}{0..99}{0..99}';
    
    console.log('Starting expansion...');
    expand(pattern);

    Run it:

    node poc.js

    The process will freeze and typically crash with an error such as:

    FATAL ERROR: JavaScript heap out of memory
    // impact

    This is a denial of service vulnerability. Any application or downstream dependency that uses @isaacs/brace-expansion on untrusted input may be vulnerable to a single-request crash.

    An attacker does not require authentication and can use a very small payload to:

    • Trigger exponential computation
    • Exhaust memory and CPU resources
    • Block the event loop
    • Crash Node.js services relying on this library
    // cvss v4.0 vector

    CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H

    Attack vector
    Network
    Attack complexity
    Low
    Attack requirements
    None
    Privileges required
    None
    User interaction
    None
    Confidentiality (vulnerable system)
    None
    Integrity (vulnerable system)
    None
    Availability (vulnerable system)
    High
    Confidentiality (subsequent systems)
    None
    Integrity (subsequent systems)
    None
    Availability (subsequent systems)
    High

    Checked 2026-11-06 at 20:55 UTC. The most recent advisory here was published 2026-02-03. Updated continuously from NVD, GHSA, OSV and CNA feeds.

    Think a verdict here is wrong? Tell us — we respond within 2 business days.