Incomplete List of Disallowed Inputs Affecting @babel/traverse package, versions <7.23.2 >=8.0.0-alpha.0 <8.0.0-alpha.4


0.0
critical

Snyk CVSS

    Attack Complexity Low
    Scope Changed
    Confidentiality High
    Integrity High
    Availability High

    Threat Intelligence

    Exploit Maturity Proof of concept
    EPSS 0.06% (23rd percentile)
Expand this section
NVD
8.8 high
Expand this section
Red Hat
8.8 high

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk ID SNYK-JS-BABELTRAVERSE-5962462
  • published 13 Oct 2023
  • disclosed 12 Oct 2023
  • credit William Khem-Marquez

How to fix?

Upgrade @babel/traverse to version 7.23.2, 8.0.0-alpha.4 or higher.

Overview

Affected versions of this package are vulnerable to Incomplete List of Disallowed Inputs when using plugins that rely on the path.evaluate() or path.evaluateTruthy() internal Babel methods.

Note:

This is only exploitable if the attacker uses known affected plugins such as @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. No other plugins under the @babel/ namespace are impacted, but third-party plugins might be.

Users that only compile trusted code are not impacted.

Workaround

Users who are unable to upgrade the library can upgrade the affected plugins instead, to avoid triggering the vulnerable code path in affected @babel/traverse.