Vulnerability in Babel
CVE-2023-45133
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.
Published · last modified .
CVSS v3 metric
CVSS v3 base score 9.3 (Critical). Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H.
EPSS exploit prediction
EPSS: 0.005 (41.9th percentile), scored .
Very low probability of exploitation in the next 30 days; routine patching cadence is appropriate. 42nd percentile — 41.9% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.
EPSS over last 30 days · oldest: 0.005 · newest: 0.005 · change: 0.000
Affected products
- Babel — versions < 7.23.2, >= 8.0.0-alpha.0, < 8.0.0-alpha.4
- Babeljs Babel — versions 8.0.0
- Babeljs Babel-Helper-Define-Polyfill-Provider
- Babeljs Babel-Plugin-Polyfill-Corejs2
- Babeljs Babel-Plugin-Polyfill-Corejs3
- Babeljs Babel-Plugin-Polyfill-Es-Shims
- Babeljs Babel-Plugin-Polyfill-Regenerator
- Babeljs Babel-Plugin-Transform-Runtime
- Babeljs Babel-Preset-Env
- Debian Linux — versions 10.0, 11.0, 12.0
Weakness classification (CWE)
Public proof-of-concept exploits
References
- github.com/babel/babel/security/advisories/GHSA-67hx-6x53-jw92 (Third Party Advisory)
- github.com/babel/babel/pull/16033 (Issue Tracking)
- github.com/babel/babel/commit/b13376b346946e3f62fc0848c1d2a23223314c82 (Patch)
- github.com/babel/babel/releases/tag/v7.23.2 (Patch)
- github.com/babel/babel/releases/tag/v8.0.0-alpha.4 (Patch)
- www.debian.org/security/2023/dsa-5528 (Issue Tracking)
- lists.debian.org/debian-lts-announce/2023/10/msg00026.html (Mailing List, Third Party Advisory)
Frequently asked questions
- What is CVE-2023-45133?
- CVE-2023-45133 is a critical-severity vulnerability in Babel, classified under Incomplete List of Disallowed Inputs. CVSS score: 9.3/10. Published 2023-10-12.
- How severe is CVE-2023-45133?
- Critical severity. CVSS v3 base score is 9.3 out of 10.
- Is CVE-2023-45133 known to be exploited?
- 4 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.