> CVE-2026-50029 [MEDIUM]

« BACK_TO_HOME
PUBLISHED
2026-08-14 19:17
MODIFIED
2026-08-14 19:17
CVSS_SCORE V3
5.3
EPSS (Prob. Exploit)
0.40%
Top 65.9%
DATA SOURCES:
NVD đź”— 2026-08-14 CWE MITRE đź”— 2026-11-01 FIRST EPSS đź”— 2026-11-01 GITHUB đź”— 2026-10-29 OSV đź”— 2026-10-26

> DESCRIPTION

js-toml is a TOML parser for JavaScript, Prior to version 1.1.2, the 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. Version 1.1.2 patches the incorrect comparison.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> CVSS V3 METRICS

CVSS_VECTOR
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
EXPLOITABILITY
3.9
IMPACT
1.4

> MÉTRIQUES CVSS DÉTAILLÉES

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Métrique Valeur Interprétation
AV (Vecteur d'Attaque)
Attack Vector
Network (N)
Exploit possible à distance via réseau (HTTP, API, etc.)
AC (Complexité d'Attaque)
Attack Complexity
Low (L)
Peu de conditions requises pour exploiter
PR (Privilèges Requis)
Privileges Required
None (N)
Aucune authentification requise
UI (Interaction Utilisateur)
User Interaction
None (N)
Aucune interaction utilisateur nécessaire
S (Périmètre)
Scope
Unchanged (U)
Impact reste dans le périmètre du composant compromis
C (Impact Confidentialité)
Confidentiality Impact
None (N)
Aucune divulgation d'informations
I (Impact Intégrité)
Integrity Impact
Low (L)
Modification limitée des données possible
A (Impact Disponibilité)
Availability Impact
None (N)
Aucune interruption de service

> RÉSUMÉ DES IMPACTS

Confidentialité
None
Aucune divulgation d'informations
Intégrité
Low
Modification limitée des données possible
Disponibilité
None
Aucune interruption de service

> WEAKNESSES

CWE-697

> CWE DETAILED DESCRIPTIONS

CWE-697: Incorrect Comparison - The product compares two entities in a security-relevant context, but the comparison is incorrect.

> GITHUB SECURITY ADVISORY

GHSA-m34p-749j-x6m6 MODERATE

js-toml has silent type confusion via falsy-primitive duplicate-key bypass

AFFECTED PACKAGES:
NPM / js-toml
<= 1.1.1
Fixed in: 1.1.2

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

js-toml has silent type confusion via falsy-primitive duplicate-key bypass

AFFECTED PACKAGES:
Unknown / Unknown
8 versions affected
ALIASES:
GHSA-m34p-749j-x6m6

> HISTORIQUE DES MODIFICATIONS

Première apparition
14/08/2026 19:17
Source: NVD
📊 ENRICHISSEMENT 01/09/2026 06:02
CWE
Champ modifié: Description CWE
Ancienne valeur:
N/A
Nouvelle valeur:
CWE-697: Incorrect Comparison - The product compares two entities in a security-relevant context, but the comparison is incorrect.
Total des modifications: 1 Dernière mise à jour: 2 months ago

> REFERENCES

https://github.com/sunnyadn/js-toml/commit/e0504fa5d3dcde2d1d588c9001c24b7b700be...
https://github.com/sunnyadn/js-toml/releases/tag/v1.1.2
https://github.com/sunnyadn/js-toml/security/advisories/GHSA-m34p-749j-x6m6
« BACK_TO_HOME