CVE-2026-112366 in Picomatchinfo

Summary

by MITRE • 10/19/2026

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.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Analysis

by VulDB Data Team • 10/19/2026

The vulnerability identified in Picomatch versions through 4.0.7 represents a significant regular expression denial of service (ReDoS) risk that targets the core parsing logic of the library. This flaw is specifically triggered by single-branch repeated extglob patterns, such as +() or +(a). The root cause lies within the lib/parse.js module, where the analyzeRepeatedExtglob function fails to properly validate or limit the complexity of these specific pattern structures. When a crafted glob string containing these patterns is processed, the underlying regular expression engine encounters an input that causes exponential backtracking. This computational explosion occurs because the regex engine attempts multiple combinations to match the ambiguous structure before failing, consuming excessive CPU resources and blocking the event loop in Node.js environments.

From a technical perspective, this issue stems from inadequate handling of recursive or nested quantifiers within extended globbing syntax. The analyzeRepeatedExtglob function is designed to optimize pattern matching by identifying repeated elements, but it incorrectly skips validation for single-branch cases where repetition can lead to catastrophic backtracking. In standard regular expression theory, certain patterns with overlapping alternatives and unbounded repetitions are known to cause performance degradation proportional to the length of the input string squared or exponentially. By allowing these specific extglob constructs without sufficient constraints, Picomatch exposes applications using it to remote exploitation via maliciously crafted file paths or pattern inputs.

The operational impact of this vulnerability is severe for any Node.js application that relies on Picomatch for path matching, such as build tools like Webpack, bundlers, or static site generators. Since Node.js operates on a single-threaded event loop model, blocking the thread with CPU-intensive regex operations prevents the processing of other asynchronous tasks, including network requests and file I/O operations. This results in application unresponsiveness, effectively creating a denial of service condition for users interacting with the affected software. Attackers can exploit this by submitting specially crafted glob patterns through any user-facing input field that is processed using Picomatch, leading to resource exhaustion without requiring authentication or privileged access if the library processes external inputs directly.

This vulnerability aligns with CWE-400, which covers Uncontrolled Resource Consumption, and more specifically relates to Regular Expression Denial of Service (ReDoS) scenarios often categorized under CWE-1335 in broader contexts of algorithmic complexity flaws. In terms of offensive security frameworks like MITRE ATT&CK, this behavior corresponds to techniques involving resource exhaustion or denial of service against application services. Mitigation strategies should prioritize upgrading Picomatch to a version where the analyzeRepeatedExtglob function has been patched to prevent exponential backtracking in single-branch repeated extglobs. Additionally, developers integrating Picomatch into their applications should implement input validation and length limits on glob patterns before passing them to the library. Implementing timeouts for regex operations or using sandboxed execution environments can also provide an additional layer of defense against potential exploitation attempts until a permanent patch is applied across all dependent systems.

Responsible

VulnCheck

Reservation

10/19/2026

Disclosure

10/19/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

low

Sources

Want to stay up to date on a daily basis?

Enable the mail alert feature now!