GitHub Advisoryadvisory · npm

GHSA-67hx-6x53-jw92 Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code

CRITICAL Published 2023-10-16 Modified 2024-04-04 Official page ↗
Aliases
CVE-2023-45133
Ecosystem
npm
Packages
@babel/traverse, babel-traverse
Severity
Critical
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Weaknesses
CWE-184, CWE-697
Reviewed
2023-10-16

Affected packages

• npm @babel/traverse: < 7.23.2 → fixed in 7.23.2 • npm @babel/traverse: >= 8.0.0-alpha.0, < 8.0.0-alpha.4 → fixed in 8.0.0-alpha.4 • npm babel-traverse: < 7.23.2 (no fix yet)

Description

Impact 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 • Any "polyfill provider" plugin that depends on `@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. Patches The vulnerability has been fixed in `@babel/[email protected]`. Babel 6 does not receive security fixes anymore (see Babel's security policy), hence there is no patch planned for `babel-traverse@6`. Workarounds • Upgrade `@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. • If you cannot upgrade `@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.3 • `babel-plugin-polyfill-corejs2` v0.4.6 • `babel-plugin-polyfill-corejs3` v0.8.5 • `babel-plugin-polyfill-es-shims` v0.10.0 • `babel-plugin-polyfill-regenerator` v0.5.3

Related

Alias · CVE (1)

  • CVE-2023-45133 Babel is a compiler for writingJavaScript. vulnerability

Weakness · CWE (2)

  • CWE-184 Incomplete List of Disallowed Inputs weakness
  • CWE-697 Incorrect Comparison weakness

References