@babel/cli version 7.10.3 introduces subtle yet important updates compared to its predecessor, 7.10.1, focusing primarily on dependency refinements for enhanced stability and compatibility. While the core functionality remains consistent, developers should note changes in the development dependencies. Specifically, @babel/core has been updated from version 7.10.1 to 7.10.3, and @babel/helper-fixtures was bumped from 7.10.1 to 7.10.1.
These adjustments likely incorporate bug fixes, performance tweaks, or new features within the Babel ecosystem. The core dependencies, including libraries like glob, slash, lodash, chokidar, make-dir, commander, source-map, convert-source-map, and fs-readdir-recursive remain unchanged ensuring a consistent experience for most users. Both versions maintain the same peer dependency @babel/core:^7.0.0-0, guaranteeing compatibility with a wide range of Babel core versions.
The distributed size of version 7.10.3 is slightly smaller, unpackedSize: 37128, compared to 7.10.1 with unpackedSize: 37166, suggesting minor optimizations. The release date shifted from May 27, 2020, to June 19, 2020, indicating a relatively short development cycle between these releases. For developers, upgrading to 7.10.3 is recommended to leverage the latest improvements in the Babel toolchain.
All the vulnerabilities related to the version 7.10.3 of the package
Uncontrolled resource consumption in braces
The NPM package braces
fails to limit the number of characters it can handle, which could lead to Memory Exhaustion. In lib/parse.js,
if a malicious user sends "imbalanced braces" as input, the parsing will enter a loop, which will cause the program to start allocating heap memory without freeing it at any moment of the loop. Eventually, the JavaScript heap limit is reached, and the program will crash.
Regular Expression Denial of Service (ReDoS) in micromatch
The NPM package micromatch
prior to version 4.0.8 is vulnerable to Regular Expression Denial of Service (ReDoS). The vulnerability occurs in micromatch.braces()
in index.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 persisted prior to https://github.com/micromatch/micromatch/pull/266. This issue should be mitigated by using a safe pattern that won't start backtracking the regular expression due to greedy matching.