Asymmetric denial of service - ReDoS In node-minimatch
Description
minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Versions 10.2.0 and below are vulnerable to Regular Expression Denial of Service (ReDoS) when a glob pattern contains many consecutive * wildcards followed by a literal character that doesn't appear in the test string. Each * compiles to a separate [^/]*? regex group, and when the match fails, V8's regex engine backtracks exponentially across all possible splits. The time complexity is O(4^N) where N is the number of * characters. With N=15, a single minimatch() call takes ~2 seconds. With N=34, it hangs effectively forever. Any application that passes user-controlled strings to minimatch() as the pattern argument is vulnerable to DoS. This issue has been fixed in version 10.2.1.
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Package | Affected version | Patched versions |
|---|---|---|---|
debian 14 | 9.0.7-1 | ||
debian 11 | - | ||
debian 12 | - | ||
debian 13 | - | ||
npm | 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3 | ||
rpm rhel10 | - | - | |
rpm rhel8 | 1:20.20.2-1.module+el8.10.0+24197+1602b452 | ||
rpm rhel9 | 1:20.20.2-1.module+el9.7.0+24193+41b7b572 | ||
rpm rhel10 | 1:22.22.2-1.el10_1 | ||
rpm rhel10 | 1:24.14.1-2.el10_1 |
1-10 of 14
10
Aliases
References