Babel plugin transform ES2015 modules to CommonJS, version 6.2.4, offers several subtle but important updates compared to its predecessor, version 6.2.0. For developers leveraging Babel to transpile modern JavaScript modules into the widely supported CommonJS format, these changes ensure enhanced compatibility and a more streamlined workflow. Both versions serve the core function of converting ES2015 import and export statements into require and module.exports for compatibility with Node.js and older browser environments.
The key differences reside primarily in the dependency versions. Version 6.2.4 upgrades its dependencies, specifically babel-types and babel-template and babel-plugin-transform-strict-mode from ^6.2.0 to ^6.2.4 and babel-helper-plugin-test-runner from ^6.1.18 to ^6.2.4. These upgraded dependencies likely incorporate crucial bug fixes, performance improvements, and potentially new features within the broader Babel ecosystem. By aligning with the more recent versions of these core Babel tools, version 6.2.4 benefits from the accumulated stability and advancements of the Babel project. Developers using 6.2.4 can expect a more reliable and up-to-date transformation process. These updates ensure smoother interoperability with other Babel plugins and tools, ultimately leading to fewer compatibility issues and a more predictable build process. The later release date of version 6.2.4, 2015-11-25, compared to version 6.2.0's 2015-11-19, also indicates that it incorporates fixes and refinements based on the earlier version's usage and feedback within the developer community.
All the vulnerabilities related to the version 6.2.4 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