Skip to main content

i18next-fs-backend CVE-2026-48713

| EUVDEUVD-2026-37005 CRITICAL
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-06-15 GitHub_M GHSA-2933-q333-qg83
9.1
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
vuln.today AI
7.7 HIGH

Remote unauthenticated via HTTP, but requires a non-default deployment (missingKeyHandler exposed, saveMissing on, default keySeparator) so AC:H; integrity/availability high via prototype writes, low confidentiality from possible auth-check bypass.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

3
Patch available
Jun 15, 2026 - 23:02 EUVD
Source Code Evidence Fetched
Jun 15, 2026 - 22:47 vuln.today
Analysis Generated
Jun 15, 2026 - 22:47 vuln.today

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 44 npm packages depend on i18next-fs-backend (4 direct, 40 indirect)

Ecosystem-wide dependent count for version 2.6.6.

DescriptionCVE.org

Versions prior to 2.6.6 are vulnerable to prototype pollution via crafted missing-key strings when used to persist missing translation keys (e.g. via i18next-http-middleware's missingKeyHandler exposed to untrusted input). Backend.writeFile() splits each queued missing-key string on the configured keySeparator (default .) before calling the internal setPath() walker. The walker (getLastOfPath in lib/utils.js) did not guard against unsafe segments, so a key like "__proto__.polluted" was split into ["__proto__", "polluted"] and walked straight into Object.prototype, allowing an attacker to write arbitrary properties onto the global object prototype. Depending on the host application, polluted prototype properties may cause crashes, corrupted translation behaviour, configuration poisoning, or bypasses of property-based security checks. Applications are affected only if the missingKeyHandler (or another route that forwards untrusted request bodies to i18next.t(..., { ... }) with saveMissing: true) is reachable by untrusted users and the default behaviour of splitting missing-key strings on keySeparator is in use (i.e. keySeparator is not false). Apps that do not expose missing-key persistence to untrusted input are not directly affected through this attack path. This issue has been fixed in version 2.6.6. If developers using the library are unable to upgrade immediately, they should take the following precautions: do not expose i18next-http-middleware's missingKeyHandler to untrusted users (mount it behind authentication, or remove the route), disable missing-key persistence (saveMissing: false, or no backend.create implementation) when accepting writes from untrusted input, and set keySeparator: false in their i18next options to disable backend key splitting (note: this also disables nested translation keys).

AnalysisAI

Prototype pollution in i18next-fs-backend versions prior to 2.6.6 allows remote attackers to write arbitrary properties onto Object.prototype by submitting crafted missing-translation keys such as '__proto__.polluted' to applications that expose i18next-http-middleware's missingKeyHandler to untrusted input. Backend.writeFile() split keys on the configured keySeparator (default '.') and the getLastOfPath walker in lib/utils.js did not filter unsafe segments before traversing the target object. No public exploit identified at time of analysis, but a coordinated-disclosure advisory (GHSA-2933-q333-qg83) and a fixing commit are public, and downstream impact can include denial of service, configuration poisoning, and bypass of property-based security checks.

Technical ContextAI

i18next-fs-backend is a Node.js filesystem backend for the i18next internationalization framework that persists translation strings - including 'missing' keys reported by clients - to JSON files on disk. The vulnerability is a CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes / 'prototype pollution') flaw in the in-memory tree walker getLastOfPath() inside lib/utils.js, which is used by setPath()/pushPath() when writeFile() flushes queued missing-key entries. Because each missing-key string is split on keySeparator (default '.') and then each segment is used as a property lookup on a plain object, an attacker-controlled segment of '__proto__', 'constructor', or 'prototype' walks the helper into Object.prototype and lets subsequent assignments mutate every JavaScript object in the process. CPE coverage is cpe:2.3:a:i18next:i18next-fs-backend:*:*:*:*:*:*:*:*, and the attack path is realistically reached through the companion i18next-http-middleware missingKeyHandler route (which also received a defence-in-depth fix in 3.9.7).

RemediationAI

Vendor-released patch: upgrade i18next-fs-backend to 2.6.6, which adds an UNSAFE_KEYS guard (__proto__, constructor, prototype) inside getLastOfPath so unsafe traversals are dropped silently while legitimate dotted keys like 'header.title' continue to work - see commit 3ab0448087da6935a40117f904b7457281f963f4 and advisory GHSA-2933-q333-qg83. As defence-in-depth, also upgrade i18next-http-middleware to 3.9.7. If immediate upgrade is not possible, mount the missingKeyHandler route behind authentication or remove it entirely; alternatively disable missing-key persistence by setting saveMissing: false or removing the backend.create implementation (trade-off: client-reported missing keys will no longer be persisted); or set keySeparator: false in i18next options to disable backend key splitting, which closes the attack but also disables nested translation keys across the application and will break any namespaces that rely on dotted lookups.

CVE-2026-34621 HIGH POC
8.6 Apr 11

Prototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu

CVE-2024-56059 CRITICAL
9.8 Dec 18

Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau

CVE-2020-28271 CRITICAL POC
9.8 Nov 12

Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service

CVE-2023-38894 CRITICAL POC
9.8 Aug 16

A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi

CVE-2024-24292 CRITICAL POC
9.8 Mar 28

A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function

CVE-2023-26121 CRITICAL POC
10.0 Apr 11

All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2024-39011 CRITICAL POC
9.8 Jul 30

Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser

CVE-2024-38988 CRITICAL POC
9.8 Mar 28

alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde

CVE-2025-57347 CRITICAL POC
9.8 Sep 24

A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf

CVE-2025-57321 CRITICAL POC
9.8 Sep 24

A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all

CVE-2024-45435 CRITICAL POC
9.8 Aug 29

Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this

Share

CVE-2026-48713 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy