Skip to main content

i18next-http-middleware CVE-2026-48714

| EUVDEUVD-2026-37006 CRITICAL
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-06-15 GitHub_M GHSA-f49m-vf83-692w
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.4 HIGH

Network-reachable and unauthenticated, but AC:H because exploitation requires a vulnerable downstream backend (i18next-fs-backend ≤ 2.6.5) and an exposed missingKeyHandler with saveMissing enabled; no confidentiality impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
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-http-middleware (4 direct, 40 indirect)

Ecosystem-wide dependent count for version 3.9.7.

DescriptionCVE.org

i18next-http-middleware is a middleware to be used with Node.js web frameworks like express or Fastify and also for Deno. In versions prior to 3.9.7, the missingKeyHandler blocked the literal request-body keys __proto__, constructor, and prototype (added in 3.9.3, see GHSA-5fgg-jcpf-8jjw), but did not reject dotted variants such as "__proto__.polluted". Downstream backends that split the missing-key string on a configured keySeparator (notably i18next-fs-backend ≤ 2.6.5) hand these keys to an unguarded setPath() walker that writes to Object.prototype. Applications that expose missingKeyHandler to untrusted input AND use i18next-fs-backend ≤ 2.6.5 are directly exploitable for remote prototype pollution. Other downstream backends that split the missing-key string the same way may be similarly affected. Depending on the host application, polluted prototype properties may cause crashes, corrupted translation behaviour, configuration poisoning, or bypasses of property-based security checks. This issue has been fixed in version 3.9.7. If developers cannot upgrade immediately, they should do the following: do not expose missingKeyHandler to untrusted users (mount it behind authentication, or remove the route), add a request-body filter ahead of the handler that rejects any top-level key containing __proto__, constructor, or prototype after splitting on their configured keySeparator, and disable missing-key persistence (saveMissing: false) when accepting writes from untrusted input.

AnalysisAI

Remote prototype pollution in i18next-http-middleware before 3.9.7 allows unauthenticated attackers to write to Object.prototype by submitting dotted request-body keys such as '__proto__.polluted' to the missingKeyHandler. The 3.9.3 denylist blocked only literal unsafe keys; downstream backends (notably i18next-fs-backend ≤ 2.6.5) that split missing-key strings on the configured keySeparator then walked these segments into an unguarded setPath(). No public exploit identified at time of analysis, but PoC payloads are embedded in the upstream security test suite.

Technical ContextAI

i18next-http-middleware is a Node.js/Deno middleware (Express, Fastify, Deno) that exposes the i18next missing-key reporting endpoint over HTTP. Its missingKeyHandler iterates request-body keys and forwards them to backendConnector.saveMissing, which delegates persistence to whichever backend is configured. The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes): the middleware's UNSAFE_KEYS denylist (added in 3.9.3 per GHSA-5fgg-jcpf-8jjw) rejected literal '__proto__', 'constructor', and 'prototype' keys but did not split keys on i18next.options.keySeparator (default '.'), so segmented variants like '__proto__.polluted' or 'a.__proto__.polluted' passed through. i18next-fs-backend ≤ 2.6.5's writeFile() then split that string on keySeparator and handed the segments to setPath(), which walked into Object.prototype. CPE coverage is cpe:2.3:a:i18next:i18next-http-middleware:*.

RemediationAI

Vendor-released patch: upgrade i18next-http-middleware to 3.9.7, which adds utils.hasUnsafeKeySegment() and rejects any key whose segments under the configured keySeparator contain __proto__, constructor, or prototype; pair this with upgrading i18next-fs-backend to 2.6.6 to remove the root-cause setPath() walk. If immediate upgrade is not possible, do not expose missingKeyHandler to untrusted callers - mount it behind authentication or remove the route entirely (trade-off: legitimate clients lose the ability to report missing translations); add a request-body filter ahead of the handler that splits each top-level key on your configured keySeparator and rejects any segment matching __proto__, constructor, or prototype (trade-off: must mirror the exact keySeparator the app uses, including keySeparator=false); and set saveMissing: false when accepting writes from untrusted input (trade-off: disables missing-key persistence entirely). See https://github.com/i18next/i18next-http-middleware/security/advisories/GHSA-f49m-vf83-692w.

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-48714 vulnerability details – vuln.today

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