<Vulnerability name="CVE-2026-112366">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Important</ThreatSeverity>
    <PublicDate>2026-10-19T15:29:00</PublicDate>
    <Bugzilla id="2555667" url="https://bugzilla.redhat.com/show_bug.cgi?id=2555667" xml:lang="en:us">
picomatch: picomatch: Denial of Service via single-branch repeated extglob patterns
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>7.5</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-1333</CWE>
    <Details xml:lang="en:us" source="Mitre">
Picomatch through 4.0.7 contains a regular expression denial of service vulnerability that allows attackers to block the event loop by supplying single-branch repeated extglob patterns. Attackers can provide globs like +(*) or +(*a), which analyzeRepeatedExtglob in lib/parse.js skips, causing exponential backtracking against short crafted strings and denying service to Node.js applications.
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
A flaw was found in picomatch. A remote attacker can trigger this vulnerability by supplying crafted pattern-matching inputs containing single-branch repeated extglob expressions. Processing these inputs causes exponential regular expression backtracking, which blocks the event loop and leads to a Denial of Service (DoS).
    </Details>
    <Statement xml:lang="en:us">
This vulnerability is rated as having an Important severity for Red Hat products because an unauthenticated remote attacker can completely stall the single-threaded Node.js runtime without requiring specialized privileges. In Red Hat environments, picomatch is embedded as a dependency within containerized services and development tooling to evaluate file paths and route expressions. When applications accept untrusted glob patterns, the resulting algorithmic complexity blocks event processing across all concurrent connections handled by the affected process.
    </Statement>
    <Mitigation xml:lang="en:us">
--- CME Mitigation Guidance (2026-10-20) ---
Disclaimer: The following mitigation solutions are provided as a courtesy, pending the application of an official patch. This content was generated utilizing AI tools in conjunction with data from https://cmetaxonomy.org. Customers are advised to independently evaluate and test these temporary mitigations within their own infrastructure.

The highest-value action is to enforce execution timeouts and step limits on pattern-matching operations, or reject untrusted single-branch repeated extglob expressions before evaluating them with picomatch: upgrade to the fixed Llvm/Swift Lang/Grafana/Prometheus/Ruff/Dotnet/Rust/Yarnpkg builds, which mark mixed wildcards as risky across all branch counts within analyzeRepeatedExtglob, closing all 2 injection vectors (crafted single-branch repeated extglob patterns, crafted input strings triggering catastrophic backtracking). Until patched, this is a concern on Applications evaluating attacker-controlled glob patterns or matching untrusted inputs against repeated extglobs, so Validate and reject untrusted glob patterns containing single-branch repeated extglobs such as +(*) or +(*a) before passing them to picomatch, and avoid evaluating untrusted input strings against repeated extglob patterns. These controls limit blast radius and contain exploitation, but they do not fix the underlying regular expression catastrophic backtracking defect — apply the upstream patch to fully remediate.

Highest-impact CME: CME-1316 Algorithmic Complexity Safeguards (Pattern/Regex Execution Limits) (high)
    </Mitigation>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>dotnet8.0</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Affected</FixState>
        <PackageName>grafana12.4</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Affected</FixState>
        <PackageName>grafana13.1</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Affected</FixState>
        <PackageName>grafana13.2</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>llvm21</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Affected</FixState>
        <PackageName>prometheus3.13</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Will not fix</FixState>
        <PackageName>prometheus3.5</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>ruff</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>rust</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>swift-lang</PackageName>
    </PackageState>
    <PackageState cpe="cpe:/a:redhat:hummingbird:1">
        <ProductName>Red Hat Hardened Images</ProductName>
        <FixState>Not affected</FixState>
        <PackageName>yarnpkg</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-112366
https://nvd.nist.gov/vuln/detail/CVE-2026-112366
https://github.com/micromatch/picomatch/blob/4.0.7/lib/parse.js#L287-L307
https://github.com/micromatch/picomatch/pull/194
https://www.vulncheck.com/advisories/picomatch-through-4.0.7-redos-via-single-branch-repeated-extglob-patterns
    </References>
</Vulnerability>