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
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify exposed missingKeyHandler endpoint
  2. Delivery
    Send HTTP request with key '__proto__.polluted'
  3. Exploit
    writeFile() splits key on '.' separator
  4. Execution
    getLastOfPath() walks into Object.prototype
  5. Persist
    setPath() writes attacker value onto prototype
  6. Impact
    Trigger downstream auth bypass or crash via polluted property

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application (1) mounts i18next-http-middleware's missingKeyHandler - or any other route that forwards untrusted request bodies into i18next.t with saveMissing: true and a backend.create implementation - and exposes it to attacker-reachable input without authentication, AND (2) runs with the default keySeparator ('.') rather than keySeparator: false. The attacker must be able to control the missing-key string so that segments such as '__proto__', 'constructor', or 'prototype' reach Backend.writeFile(). Apps that gate missingKeyHandler behind authentication, disable saveMissing, or set keySeparator: false are not exploitable through this path; the CVSS PR:N rating is therefore optimistic and assumes the worst-case default deployment of the middleware.

Impact

The published CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H (9.1) treats the bug as a remote, unauthenticated high-impact integrity/availability flaw, which is plausible for a generic prototype-pollution primitive but materially overstates real-world exposure: the description itself constrains exploitation to applications that (a) wire missingKeyHandler (or an equivalent saveMissing route) to untrusted input AND (b) leave keySeparator at its default. Apps without that exact configuration are not affected through this attack path. There is no EPSS score, KEV listing, or SSVC decision provided in the input, and no public exploit identified at time of analysis - only the vendor advisory and fix commit are public, so this should be treated as a credible, patch-now issue for any service that proxies user input into i18next.t(..., { saveMissing: true }), but not as evidence of mass active exploitation. Confidentiality is rated N because the primitive writes to prototypes rather than directly reading data, but secondary C impact is plausible if polluted properties bypass auth checks downstream - defenders should not assume C:N translates to 'no data risk'.

Exploit ScenarioDerived

A public-facing Node.js web app uses i18next with i18next-http-middleware and exposes the missingKeyHandler endpoint so that browsers can report untranslated strings. The attacker sends an HTTP request that registers a missing key of '__proto__.isAdmin' with value true; writeFile() splits the key on '.', setPath() walks into Object.prototype, and every subsequent object in the process now reports isAdmin === true, letting the attacker bypass a property-based authorization check or crash request handlers that branch on prototype state. No public PoC was supplied in the input but the security test suite added in the fix commit demonstrates the primitive end-to-end.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 15, 2026

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.

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.

Affected VersionsENISA

i18next-fs-backend < 2.6.6

Affected Packages

npm i18next-fs-backend fix: 2.6.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

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).

Know when Prototype Pollution gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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

1
Patch available
Jun 15, 2026 - 23:02 EUVD

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).

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.

Executive ViewAI

Why It Matters

A prototype pollution vulnerability in i18next-fs-backend (CVE-2026-48713) allows attackers to inject arbitrary properties into application configuration objects via untrusted translation inputs. Organizations using this library face risks of configuration tampering, service disruption, and bypass of property-based security controls-particularly concerning where configuration properties enforce access policies or feature flags. The critical 9.1 CVSS score combined with public disclosure of technical details necessitates urgent remediation.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Deploy input sanitization on all translation-key handlers, rejecting patterns containing '__proto__' or other unsafe property-chain segments; (2) Apply WAF rules to block requests containing prototype pollution payloads; (3) Restrict external access to missingKeyHandler through authentication/authorization controls; (4) Enable security monitoring and alerting for unauthorized application object modifications.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Threat Intel
1
1 source
Social Media
4
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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-2021-23450 CRITICAL POC
9.8 Dec 17

All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (

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-2021-23383 CRITICAL POC
9.8 May 04

The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co

CVE-2020-7788 CRITICAL POC
9.8 Dec 11

This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl

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

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