CVE-2026-48714

i18next-http-middleware: MissingKeyHandler does not reject keys whose segments contain prototype-polluting names

criticalEPSS 0.5 %

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 missingKeyHandler nicht 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__, constructor oder prototype enthält, nachdem er anhand eines konfigurierten keySeparator aufgeteilt 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

Severity
critical
kein öffentlicher PoC bekannt
9.1
Quelle: nvd-v3
41.6 %
Hoch — CVE rangiert über dem Median aller heute bewerteten CVEs (Rang ≥ 36 %).
0.5 %
Niedrig — Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Veröffentlicht
2026-06-25 17:28 UTC
CWE-1321

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.

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

Verknüpfte Empfehlungen

IDCVE-2026-48714