Advisory Database
  • Advisories
  • Dependency Scanning
  1. npm
  2. ›
  3. js-toml
  4. ›
  5. CVE-2026-50029

CVE-2026-50029: js-toml has silent type confusion via falsy-primitive duplicate-key bypass

June 26, 2026

js-toml’s interpreter checks whether a key already exists in a parser-built container with if (object[key]) instead of if (key in object). When the prior value is a falsy primitive — false, 0, 0n, 0.0, -0, or "" — the duplicate-key branch is skipped and the value is silently overwritten by a later sub-table, dotted-key sub-table, or array-of-tables sharing the same name. Per the TOML 1.0.0 spec (“Defining a key multiple times is invalid”; “You cannot define any key or table more than once”), this should be a parse error.

The result is structural type confusion of attacker-named keys in the value returned by load(). A boolean-typed false (or numeric 0) becomes a truthy object. Host applications that gate behavior on if (config.flag), if (!user.banned), if (config.allowDelete), or if (config.publicMode) will silently take the truthy branch.

This is distinct from GHSA-65fc-cr5f-v7r2 (the 1.0.2 prototype-pollution fix). Object.prototype is not polluted. The Object.create(null) mitigation from 1.0.2 is intact; the bug here is in the duplicate-key state machine, not in container construction.

References

  • github.com/advisories/GHSA-m34p-749j-x6m6
  • github.com/sunnyadn/js-toml/security/advisories/GHSA-m34p-749j-x6m6
  • nvd.nist.gov/vuln/detail/CVE-2026-50029

Code Behaviors & Features

Detect and mitigate CVE-2026-50029 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 1.1.2

Fixed versions

  • 1.1.2

Solution

Upgrade to version 1.1.2 or above.

Impact 5.3 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-697: Incorrect Comparison

Source file

npm/js-toml/CVE-2026-50029.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Thu, 16 Jul 2026 12:19:04 +0000.