Regular Expression Denial of Service (ReDoS) in micromatch
Moderate severity
GitHub Reviewed
Published
May 14, 2024
to the GitHub Advisory Database
•
Updated Aug 28, 2024
Description
Published by the National Vulnerability Database
May 14, 2024
Published to the GitHub Advisory Database
May 14, 2024
Reviewed
Aug 21, 2024
Last updated
Aug 28, 2024
The NPM package
micromatchprior to version 4.0.8 is vulnerable to Regular Expression Denial of Service (ReDoS). The vulnerability occurs inmicromatch.braces()inindex.jsbecause the pattern.*will greedily match anything. By passing a malicious payload, the pattern matching will keep backtracking to the input while it doesn't find the closing bracket. As the input size increases, the consumption time will also increase until it causes the application to hang or slow down. There was a merged fix but further testing shows the issue persisted prior to micromatch/micromatch#266. This issue should be mitigated by using a safe pattern that won't start backtracking the regular expression due to greedy matching.References