i18nextのi18next-http-middlewareにおけるオブジェクトプロトタイプ属性の不適切に制御された変更に関する脆弱性
タイトル i18nextのi18next-http-middlewareにおけるオブジェクトプロトタイプ属性の不適切に制御された変更に関する脆弱性
概要

i18next-http-middlewareは、expressやFastifyなどのNode.jsウェブフレームワークやDenoで使用されるミドルウェアです。バージョン3.9.7以前では、missingKeyHandlerはリクエストボディのキー__proto__、constructor、およびprototype(3.9.3で追加、GHSA-5fgg-jcpf-8jjw参照)をブロックしていましたが、"__proto__.polluted"のようなドット付きの変種は拒否しませんでした。下流のバックエンド(特にi18next-fs-backend バージョン2.6.5以下)は、missing-key文字列を設定されたkeySeparatorで分割し、これらのキーを保護されていないsetPath()ウォーカーに渡してObject.prototypeに書き込みを行います。missingKeyHandlerを信頼できない入力に対して公開し、かつi18next-fs-backend バージョン2.6.5以下を使用するアプリケーションは、リモートプロトタイプ汚染の脆弱性を直接悪用される可能性があります。同様の方法でmissing-key文字列を分割する他の下流バックエンドも同様に影響を受ける可能性があります。ホストアプリケーションによっては、汚染されたプロトタイププロパティがクラッシュ、翻訳の破損、設定の汚染、またはプロパティベースのセキュリティチェックの回避を引き起こす可能性があります。この問題はバージョン3.9.7で修正されました。開発者が即時のアップグレードができない場合は、以下の対応を行うべきです:missingKeyHandlerを信頼できないユーザーに公開しない(認証の背後に設置するかルートを削除する)、ハンドラーの前にリクエストボディフィルターを追加し、設定されたkeySeparatorで分割した後に__proto__、constructor、またはprototypeを含むトップレベルキーを拒否し、信頼できない入力からの書き込みを受け入れる場合はmissing-keyの永続化(saveMissing: false)を無効にしてください。

想定される影響 ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 ・当該ソフトウェアが完全に停止する可能性があります。 
対策

ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年6月15日0:00
登録日 2026年6月22日11:32
最終更新日 2026年6月22日11:32
CVSS3.0 : 緊急
スコア 9.1
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
影響を受けるシステム
i18next
i18next-http-middleware 3.9.7 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年06月22日]
  掲載
2026年6月22日11:32

NVD脆弱性情報
CVE-2026-48714
概要

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.

公表日 2026年6月16日7:16
登録日 2026年6月17日4:16
最終更新日 2026年6月17日0:46
関連情報、対策とツール
共通脆弱性一覧