p PatchFirst

PatchFirst · Latest vulnerabilities

brace-expansion vulnerabilities

Vulnerabilities published for brace-expansion in the last 30 days: 0. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Clear filters

Vulnerabilities: 10

  1. CVE-2026-102278

    High · CVSS 7.5EPSS 0.46%Fix available

    brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11, deeply nested brace groups cause expand_() to recurse once per nesting level at comma-member and single-set expansion sites, exhausting the native stack before output limits can apply and potentially terminating the Node.js process. expand_ performs uncontrolled recursion for nested brace alternatives and single-part sets. deeply nested brace groups supplied as an untrusted pattern. expand_ is affected. expand is affected. Comma members is affected. Single set is affected. native stack exhaustion during nes

    • Update to 1.1.20
    • Update to 2.1.6
    • Update to 3.0.8
    • Update to 5.0.11
    Published Updated
  2. CVE-2026-102277

    Medium · CVSS 5.3EPSS 0.42%Fix available

    brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.21, 2.1.7, 3.0.9, and 5.0.12, the expand function handles untrusted {a},b}-shaped patterns with many trailing closing braces by restarting its scan once for each trailing closing brace. The successive full-input rescans with linear working-string growth cause quadratic CPU time and memory pressure that can block the Node.js event loop. The process eventually recovers, making the impact a recoverable CPU denial of service. This issue is fixed in versions 1.1.21, 2.1.7, 3.0.9, and 5.0.12.

    • Update to 1.1.21
    • Update to 2.1.7
    • Update to 3.0.9
    • Update to 5.0.12
    Published Updated
  3. CVE-2026-102276

    High · CVSS 7.5EPSS 0.46%Fix available

    brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10, crafted brace patterns can exhaust the native stack in parseCommaParts because parseCommaParts recursively processes the remainder once per brace group and uses push.apply to pass every element of a very large comma-part array as a function argument. Patterns containing many comma-separated brace groups trigger the recursive path, while the large array triggers the argument-array path without deep recursion. These paths cause recursive and argument-array native stack exhaustion before max or maxLength can l

    • Update to 1.1.19
    • Update to 2.1.5
    • Update to 3.0.7
    • Update to 5.0.10
    Published Updated
  4. CVE-2026-69152

    High · CVSS 7.5EPSS 0.65%Fix available

    brace-expansion: DoS via unbounded intermediate arrays, bypassing the CVE-2026-14257 mitigation

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.18, 2.1.4, 3.0.6, and 5.0.9, expand() does not apply maxLength while constructing comma-alternative intermediate arrays or padded sequences, allowing attacker-controlled input to exhaust memory or block the event loop. The fix for CVE-2026-14257 is bypassed by the vulnerability. This issue is fixed in versions 1.1.18, 2.1.4, 3.0.6, and 5.0.9.

    • Update to 1.1.18
    • Update to 2.1.4
    • Update to 3.0.6
    • Update to 5.0.9
    Published Updated
  5. CVE-2026-14257

    High · CVSS 7.5EPSS 0.64%Fix available

    brace-expansion DoS via unbounded expansion length causing an out-of-memory process crash

    brace-expansion through 5.0.7 is vulnerable to denial of service via memory exhaustion. The expand() function limits the number of results with a max option (default 100,000) but does not bound the length of each result string. By chaining multiple brace groups, an attacker keeps the result count under the limit while making each result progressively longer, so total memory scales with both count and string length until the process hits a fatal, uncatchable out-of-memory error. About 7.5 KB of input ('{a,b}'.repeat(1500)) crashes a default Node.js process. Any application that passes attacker-influenced strings to brace-expansion.expand() - d

    • Update to 1.1.17
    • Update to 2.1.3
    • Update to 3.0.3
    • Update to 5.0.8
    Published Updated
  6. CVE-2026-13149

    High · CVSS 7.7EPSS 0.36%Fix available

    CVE-2026-13149

    brace-expansion through 5.0.6 is vulnerable to denial of service. The expand() function exhibits exponential-time complexity in the number of consecutive non-expanding '{}' brace groups. An attacker who passes a crafted string to expand(), directly or transitively, can cause significant CPU consumption and event-loop blocking. The max option does not mitigate this, as it bounds the output size rather than the recursion work.

    • Update to 1.1.16
    • Update to 2.1.2
    • Update to 5.0.7
    Published Updated
  7. CVE-2026-45149

    Medium · CVSS 6.5EPSS 0.3%Fix available

    brace-expansion: Large numeric range defeats documented `max` DoS protection

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. From 5.0.0 to before 5.0.6, the max option was being applied too late. When expanding a single large numeric range like {1..10000000}, the sequence generation loop generates all 10 million intermediate elements before the max limit is applied With max=10, the output is correctly limited to 10 items, but the process still allocates ~505 MB and spends ~800ms building the full intermediate array. This vulnerability is fixed in 5.0.6.

    • Update to 5.0.6
    Published Updated
  8. CVE-2026-33750

    Medium · CVSS 6.5EPSS 0.45%Fix available

    brace-expansion: Zero-step sequence causes process hang and memory exhaustion

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13, a brace pattern with a zero step value (e.g., `{1..2..0}`) causes the sequence generation loop to run indefinitely, making the process hang for seconds and allocate heaps of memory. Versions 5.0.5, 3.0.2, 2.0.3, and 1.1.13 fix the issue. As a workaround, sanitize strings passed to `expand()` to ensure a step value of `0` is not used.

    • Update to 1.1.13
    • Update to 2.0.3
    • Update to 3.0.2
    • Update to 5.0.5
    Published Updated
  9. CVE-2025-5889

    Low · CVSS 2.3EPSS 0.59%Fix available

    juliangruber brace-expansion index.js expand redos

    A vulnerability was found in juliangruber brace-expansion up to 1.1.11/2.0.1/3.0.0/4.0.0. It has been rated as problematic. Affected by this issue is the function expand of the file index.js. The manipulation leads to inefficient regular expression complexity. The attack may be launched remotely. The complexity of an attack is rather high. The exploitation is known to be difficult. The exploit has been disclosed to the public and may be used. Upgrading to version 1.1.12, 2.0.2, 3.0.1 and 4.0.1 is able to address this issue. The name of the patch is a5b98a4f30d7813266b221435e1eaaf25a1b0ac5. It is recommended to upgrade the affected component.

    • Update to 1.1.12
    • Update to 2.0.2
    • Update to 3.0.1
    • Update to 4.0.1
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →