[Security] Bump micromatch from 4.0.4 to 4.0.8
Bumps micromatch from 4.0.4 to 4.0.8. This update includes a security fix.
Vulnerabilities fixed
Regular Expression Denial of Service (ReDoS) in micromatch The NPM package
micromatch
is vulnerable to Regular Expression Denial of Service (ReDoS). The vulnerability occurs inmicromatch.braces()
inindex.js
because 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 persists. This issue should be mitigated by using a safe pattern that won't start backtracking the regular expression due to greedy matching.Patched versions: 4.0.8 Affected versions: < 4.0.8
Changelog
Sourced from micromatch's changelog.
[4.0.8] - 2024-08-22
- backported CVE-2024-4067 fix (from v4.0.6) over to 4.x branch
[4.0.7] - 2024-05-22
- this is basically v4.0.5, with some README updates
- it is vulnerable to CVE-2024-4067
- Updated braces to v3.0.3 to avoid CVE-2024-4068
- does NOT break API compatibility
[4.0.6] - 2024-05-21
- Added
hasBraces
to check if a pattern contains braces.- Fixes CVE-2024-4067
- BREAKS API COMPATIBILITY
- Should be labeled as a major release, but it's not.
[4.0.1 - 4.0.5]
[4.0.0] - 2019-03-20
Added
- Adds support for
options.onMatch
. See the readme for details- Adds support for
options.onIgnore
. See the readme for details- Adds support for
options.onResult
. See the readme for detailsBreaking changes
- Require Node.js >= 8.6
- Removed support for passing an array of brace patterns to
micromatch.braces()
.- To strictly enforce closing brackets (for
{
,[
, and(
), you must now usestrictBrackets=true
instead ofstrictErrors
.cache
- caching and all related options and methods have been removedoptions.unixify
was renamed tooptions.windows
options.nodupes
Was removed. Duplicates are always removed by default. You can override this with custom behavior by using theonMatch
,onResult
andonIgnore
functions.options.snapdragon
was removed, as snapdragon is no longer used.options.sourcemap
was removed, as snapdragon is no longer used, which provided sourcemap support.[3.0.0] - 2017-04-11
Complete overhaul, with 36,000+ new unit tests validated against actual output generated by Bash and minimatch. More specifically, 35,000+ of the tests:
- micromatch results are directly compared to bash results
- in rare cases, when micromatch and bash disagree, micromatch's results are compared to minimatch's results
- micromatch is much more accurate than minimatch, so there were cases where I had to make assumptions. I'll try to document these.
This refactor introduces a parser and compiler that are supersets of more granular parsers and compilers from other sub-modules. Each of these sub-modules has a singular responsibility and focuses on a certain type of matching that aligns with a specific part of the Bash "expansion" API.
These sub-modules work like plugins to seamlessly create the micromatch parser/compiler, so that strings are parsed in one pass, an AST is created, then a new string is generated by the compiler.
... (truncated)
Commits
-
8bd704e
4.0.8 -
a0e6841
run verb to generate README documentation -
4ec2884
Merge branch 'v4' into hauserkristof-feature/v4.0.8 -
03aa805
Merge pull request #266 from hauserkristof/feature/v4.0.8 -
814f5f7
lint -
67fcce6
fix: CHANGELOG about braces & CVE-2024-4068, v4.0.5 -
113f2e3
fix: CVE numbers in CHANGELOG -
d9dbd9a
feat: updated CHANGELOG -
2ab1315
fix: use actions/setup-node@v4 -
1406ea3
feat: rework test to work on macos with node 10,12 and 14 - Additional commits viewable in compare view
Dependabot commands
You can trigger Dependabot actions by commenting on this MR
-
$dependabot recreate
will recreate this MR rewriting all the manual changes and resolving conflicts