The babel-plugin-transform-es2015-modules-commonjs package, a crucial tool for JavaScript developers using Babel, saw a minor version update from 6.1.17 to 6.1.18. While both versions share the same core functionality – transforming ES2015 module syntax into CommonJS format for broader compatibility – subtle differences exist. Developers should be aware of these nuances when choosing or upgrading between versions.
Crucially, both versions depend heavily on other Babel packages: babel-types, babel-runtime, babel-template, and babel-plugin-transform-strict-mode. Version 6.1.18 updates the dependency versions of babel-types, babel-template and babel-plugin-transform-strict-mode from 6.1.17 to 6.1.18 respectively. Also, the babel-helper-plugin-test-runner dependency also updates from 6.1.17 to 6.1.18. Developers employing continuous integration or automated testing should pay close attention to these potentially breaking changes in transitive dependencies during package upgrades.
The difference in release dates, a mere 8 minutes, suggests that the update likely included bug fixes, performance improvements, or minor adjustments to internal workings rather than a significant overhaul. Although specific details of the changes are not provided in the metadata, staying up-to-date with the latest version ensures developers benefit from the most stable and efficient implementation of ES2015 module transformation within their projects. Before upgrading, review any change logs or release notes provided by the Babel team to understand the exact modifications and their potential impact.
All the vulnerabilities related to the version 6.1.18 of the package
Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code
Using Babel to compile code that was specifically crafted by an attacker can lead to arbitrary code execution during compilation, when using plugins that rely on the path.evaluate()
or path.evaluateTruthy()
internal Babel methods.
Known affected plugins are:
@babel/plugin-transform-runtime
@babel/preset-env
when using its useBuiltIns
option@babel/helper-define-polyfill-provider
, such as babel-plugin-polyfill-corejs3
, babel-plugin-polyfill-corejs2
, babel-plugin-polyfill-es-shims
, babel-plugin-polyfill-regenerator
No other plugins under the @babel/
namespace are impacted, but third-party plugins might be.
Users that only compile trusted code are not impacted.
The vulnerability has been fixed in @babel/traverse@7.23.2
.
Babel 6 does not receive security fixes anymore (see Babel's security policy), hence there is no patch planned for babel-traverse@6
.
@babel/traverse
to v7.23.2 or higher. You can do this by deleting it from your package manager's lockfile and re-installing the dependencies. @babel/core
>=7.23.2 will automatically pull in a non-vulnerable version.@babel/traverse
and are using one of the affected packages mentioned above, upgrade them to their latest version to avoid triggering the vulnerable code path in affected @babel/traverse
versions:
@babel/plugin-transform-runtime
v7.23.2@babel/preset-env
v7.23.2@babel/helper-define-polyfill-provider
v0.4.3babel-plugin-polyfill-corejs2
v0.4.6babel-plugin-polyfill-corejs3
v0.8.5babel-plugin-polyfill-es-shims
v0.10.0babel-plugin-polyfill-regenerator
v0.5.3