Skip to content
Heist/ feed
Back to feed
HighFix available

node-brace-expansion — security advisory

Type: advisorySources: OSVAdvisory ID: DEBIAN-CVE-2026-102276

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 limit output, potentially terminating the Node.js process in a process-terminating denial of service. This issue is fixed in versions 1.1.19, 2.1.5, 3.0.7, and 5.0.10.

Products
node-brace-expansion
Affected versions
2.0.1+~1.1.0-1, 2.0.1+~1.1.0-2, 2.0.1-2, 2.0.3+~1.1.2-1, 2.0.3+~1.1.2-2, 2.0.3+~1.1.2-3, 2.1.4+~1.1.2-1, 2.1.7+~1.1.2-1
Fixed versions
2.1.7+~1.1.2-1
CVEs
CVE-2026-102276
Confirmed fixed CVEs
Not specified
Updated in this feed
28 Oct 2026, 12:47 UTC · Revision 1

Source evidence

DEBIAN-CVE-2026-102276

core-osv · Original source

Published 28 Sept 2026, 21:17 UTC

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 limit output, potentially terminating the Node.js process in a process-terminating denial of service. This issue is fixed in versions 1.1.19, 2.1.5, 3.0.7, and 5.0.10.

osv:DEBIAN-CVE-2026-102276

node-brace-expansion

Fixed versions: Not specified

node-brace-expansion

Fixed versions: Not specified

node-brace-expansion

Fixed versions: 2.1.7+~1.1.2-1

Complete source record
{
  "id": "0394a859b3bdb90457862da341bd1249870b7bbe59116d86e3304e85a257d8a4",
  "url": "https://osv.dev/vulnerability/DEBIAN-CVE-2026-102276",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "DEBIAN-CVE-2026-102276",
    "summary": "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 limit output, potentially terminating the Node.js process in a process-terminating denial of service. This issue is fixed in versions 1.1.19, 2.1.5, 3.0.7, and 5.0.10.",
    "evidence": "osv:DEBIAN-CVE-2026-102276",
    "products": [
      {
        "name": {
          "value": "node-brace-expansion",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.0.1+~1.1.0-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.1+~1.1.0-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.1-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.3+~1.1.2-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.3+~1.1.2-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.0.3+~1.1.2-3",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.1.4+~1.1.2-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "2.1.7+~1.1.2-1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "node-brace-expansion",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.0.1+~1.1.0-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.0.3+~1.1.2-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.0.3+~1.1.2-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.0.3+~1.1.2-3",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.1.4+~1.1.2-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.1.7+~1.1.2-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "node-brace-expansion",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.1.7+~1.1.2-1",
            "evidence": "/affected/2/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.0.1+~1.1.0-2",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.0.3+~1.1.2-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.0.3+~1.1.2-2",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.0.3+~1.1.2-3",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.1.4+~1.1.2-1",
            "evidence": "/affected/2/versions"
          }
        ]
      }
    ],
    "severity": "high",
    "structured": {
      "id": "DEBIAN-CVE-2026-102276",
      "aliases": [
        "DEBIAN-CVE-2026-102276"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "node-brace-expansion",
            "purl": "pkg:deb/debian/node-brace-expansion?arch=source&distro=bookworm",
            "ecosystem": "Debian:12"
          },
          "versions": [
            "2.0.1+~1.1.0-1",
            "2.0.1+~1.1.0-2",
            "2.0.1-2",
            "2.0.3+~1.1.2-1",
            "2.0.3+~1.1.2-2",
            "2.0.3+~1.1.2-3",
            "2.1.4+~1.1.2-1",
            "2.1.7+~1.1.2-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-102276.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "node-brace-expansion",
            "purl": "pkg:deb/debian/node-brace-expansion?arch=source&distro=trixie",
            "ecosystem": "Debian:13"
          },
          "versions": [
            "2.0.1+~1.1.0-2",
            "2.0.3+~1.1.2-1",
            "2.0.3+~1.1.2-2",
            "2.0.3+~1.1.2-3",
            "2.1.4+~1.1.2-1",
            "2.1.7+~1.1.2-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-102276.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.1.7+~1.1.2-1"
                }
              ]
            }
          ],
          "package": {
            "name": "node-brace-expansion",
            "purl": "pkg:deb/debian/node-brace-expansion?arch=source&distro=forky",
            "ecosystem": "Debian:14"
          },
          "versions": [
            "2.0.1+~1.1.0-2",
            "2.0.3+~1.1.2-1",
            "2.0.3+~1.1.2-2",
            "2.0.3+~1.1.2-3",
            "2.1.4+~1.1.2-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-102276.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        }
      ],
      "modified": "2026-10-09T17:00:11.508512287Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-102276"
      ],
      "references": [
        "https://security-tracker.debian.org/tracker/CVE-2026-102276"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-102276",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 122320,
  "published_at": "2026-09-28T21:17:16.033+00:00"
}