CVE-2026-48714
i18next-http-middleware: MissingKeyHandler does not reject keys whose segments contain prototype-polluting names
Beschreibung
Auswirkungen
Die Versionen von i18next-http-middleware bis einschließlich 3.9.6 blockierten die wörtlichen Anfragen-Body-Schlüssel __proto__, constructor und prototype (hinzugefügt in 3.9.3, siehe GHSA-5fgg-jcpf-8jjw), lehnten jedoch gestrichelte Varianten wie "__proto__.polluted" nicht ab. Downstream-Backends, die den fehlenden Schlüsselstring anhand eines konfigurierten keySeparator aufteilen (insbesondere i18next-fs-backend bis einschließlich 2.6.5), übergeben diese Schlüssel einem ungeschützten setPath() Walker, der in Object.prototype schreibt.
Anwendungen, die den missingKeyHandler unvertrauenswürdigen Eingaben aussetzen UND i18next-fs-backend bis einschließlich 2.6.5 verwenden, sind direkt für Remote-Prototypverschmutzungen anfällig. Andere Downstream-Backends, die den fehlenden Schlüsselstring auf dieselbe Weise aufteilen, könnten ähnlich betroffen sein.
Abhängig von der Hostanwendung können verschmutzte Prototyp-Eigenschaften zu Abstürzen, korruptem Übersetzungsverhalten, Konfigurationsverschmutzung oder Umgehungen von eigenschaftsbasierten Sicherheitsüberprüfungen führen.
Patches
In i18next-http-middleware 3.9.7 behoben. Ein neuer utils.hasUnsafeKeySegment(key, keySeparator)-Hilfsprogramm wird nun vom missingKeyHandler verwendet; die konfigurierte i18next.options.keySeparator wird beachtet (Standard ., false deaktiviert das Segment-Splitting und nur die wörtliche Schlüssel-Abschlagliste gilt). Legitime gestrichelte Schlüssel (z. B. "header.title") bleiben unberührt.
Die Ursachenbehebung wurde in i18next-fs-backend 2.6.6 ausgeliefert — siehe das Begleitdokument.
Workarounds
Wenn Benutzer nicht sofort aktualisieren können:
- Exponieren Sie den
missingKeyHandlernicht für unvertrauenswürdige Benutzer (montieren Sie ihn hinter einer Authentifizierung oder entfernen Sie die Route). - Fügen Sie einen Anfragen-Body-Filter vor dem Handler hinzu, der jeden obersten Schlüssel ablehnt, der
__proto__,constructoroderprototypeenthält, nachdem er anhand eines konfiguriertenkeySeparatoraufgeteilt wurde. - Deaktivieren Sie die Persistenz fehlender Schlüssel (
saveMissing: false), wenn Schreibvorgänge von unvertrauenswürdigen Eingaben akzeptiert werden.
Ressourcen
- Ursprüngliche Meldung durch @codeswhite.
- Begleitdokument in
i18next-fs-backend: GHSA-2933-q333-qg83. - Vorherige Sicherheitsveröffentlichung von
i18next-http-middleware: GHSA-5fgg-jcpf-8jjw und GHSA-c3h8-g69v-pjrg (in 3.9.3).
Metriken
Weakness-Klassen (CWE)
CWE-1321Variant
Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.
cwe.mitre.org →
Re-Analyse & Statuswechsel
Chronologie der NVD-Audit-Events für diese CVE — Reanalyses, CVSS-Updates, CPE-Diffs.
- New CVE Received2026-06-15 22:16 UTC· security-advisories@github.com
- Description: 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.
- CVSS V3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
- CWE: CWE-1321
- Reference: https://github.com/i18next/i18next-http-middleware/commit/7c6d26f137d3e940b8d229ca148bca38845faf49
Betroffene Produkte
Aus der Hersteller-/CERT-Meldung extrahierte Produkte und Versionsbereiche. Ein Version-Range wie „<4.14.6“ impliziert die Update-Empfehlung „auf 4.14.6 oder höher aktualisieren“.
npm
i18next-http-middleware
Quellen & Referenzen
- https://github.com/i18next/i18next-http-middleware/security/advisories/GHSA-f49m-vf83-692wweb
- https://nvd.nist.gov/vuln/detail/CVE-2026-48714advisory
- https://github.com/i18next/i18next-http-middleware/commit/7c6d26f137d3e940b8d229ca148bca38845faf49web
- https://github.com/i18next/i18next-http-middlewarepackage