CVE Catalog

CVE-2026-63402

MediumCVSS 5.9
Published: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.26%

18th percentile - higher than 18% of all known CVEs

Summary

In i18next before version 26.3.4, deepExtend in src/utils.js checks property existence with the in operator and recurses into inherited built-ins reached through Object.prototype. If an application explicitly passes attacker-controlled resource data to addResourceBundle with both deep: true and overwrite: true, keys such as hasOwnProperty, toString and valueOf can select shared inherited built-in function objects, and a nested value can overwrite a property of those objects process-wide. For example, making Object.prototype.hasOwnProperty.call non-callable causes subsequent uses, including i18next internals, to throw TypeError, resulting in unrecoverable denial of service and limited integrity impact.

Risk Assessment

Applications that pass untrusted resource data to addResourceBundle with deep: true and overwrite: true can be driven into persistent process failure (DoS) with limited integrity impact. Default calls without deep merging or with overwrite falsy are unaffected, and no standard i18next backend or integration uses the vulnerable configuration.

Recommendation

Upgrade i18next to version 26.3.4 or later. Avoid passing untrusted resource data to addResourceBundle with both deep: true and overwrite: true.

Related vulnerabilities

Original NVD description (English source)

i18next is an internationalization framework for JavaScript. Prior to version 26.3.4, `deepExtend` in `src/utils.js` checks property existence with the in operator and recurses into inherited built-ins reached through `Object.prototype`. An application must explicitly pass attacker-controlled resource data to `addResourceBundle(lng, ns, data, deep, overwrite)` with both `deep: true` and `overwrite: true`. Source keys such as `hasOwnProperty`, `toString` and `valueOf` can then select shared inherited built-in function objects, and a nested value can overwrite a property of those objects process-wide. For example, making `Object.prototype.hasOwnProperty.call` non-callable causes subsequent uses, including i18next internals, to throw TypeError, resulting in unrecoverable denial of service and limited integrity impact. The `__proto__`/`constructor` guard does not prevent this mechanism because the corruption target is an inherited built-in function rather than the prototype object itself. Default calls without deep merging or with overwrite falsy are unaffected, and no standard i18next backend or integration uses the vulnerable configuration. This issue is distinct from the setPath/key-walking prototype-pollution flaws in i18next-fs-backend (CVE-2026-48713) and i18next-http-middleware (CVE-2026-48714). This issue is fixed in version 26.3.4.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS