Every CVE Search/ Get API key

CVE-2026-63402

i18next: Shared built-in corruption through inherited-key deepExtend recursion

5.9 Medium

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
High

Exploit likelihood

0.26%Unchanged since Oct 31, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.9

i18next: Shared built-in corruption through inherited-key deepExtend recursion

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.

Record
CVE-2026-63402
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Weakness
CWE-471, CWE-1321
Updated
2026-11-05
EUVDEUVD-2026-114546 5.9

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.

Record
EUVD-2026-114546
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Updated
2026-11-05
NVD 5.9

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.

Record
CVE-2026-63402
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Weakness
CWE-471, CWE-1321
Updated
2026-11-05
OSV 5.9

i18next: Shared built-in corruption through inherited-key deepExtend recursion

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.

Record
CVE-2026-63402
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Weakness
CWE-1321, CWE-471
Updated
2026-11-05
OSVDEBIAN-CVE-2026-63402 5.9

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.

Record
DEBIAN-CVE-2026-63402
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Updated
2026-11-05
OSVUBUNTU-CVE-2026-63402 5.9

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.

Record
UBUNTU-CVE-2026-63402
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
Updated
2026-11-05

Affected products

Affected packages

Affected packages
PackageAffectedFixed
node-i18next
Debian:12
All versions, plus listed versions
22.4.8-123.7.6-123.7.6-226.7.1-1
None known
node-i18next
Debian:13
All versions, plus listed versions
23.7.6-123.7.6-226.7.1-1
None known
node-i18next
Debian:14
All versions, plus listed versions
23.7.6-123.7.6-226.7.1-1
None known
node-i18next
Ubuntu:20.04:LTS
All versions, plus listed versions
17.0.18-119.0.1+dfsg-119.0.2+dfsg-1
None known
node-i18next
Ubuntu:22.04:LTS
All versions, plus listed versions
19.8.4+dfsg-121.3.2+dfsg-121.6.4+dfsg-121.6.10+dfsg-121.6.11+dfsg-1
None known
node-i18next
Ubuntu:24.04:LTS
All versions, plus listed versions
22.4.8-123.7.6-123.7.6-1build2
None known
node-i18next
Ubuntu:26.10
All versions, plus listed versions
23.7.6-1build2
None known
node-i18next
Ubuntu:26.04:LTS
All versions, plus listed versions
23.7.6-1build2
None known

History

History
RecordedChangedSources
affectedOSV
referencesCVE List, EUVD, NVD
affected, aliases, referencesOSV
factsNVD, OSV
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-63402 is a medium vulnerability (CVSS 5.9) in I18next, published October 30, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.26%, the 18th percentile. No source names a fixed version.

References

MoveEnter Open