IT用語集 › セキュリティ › プロトタイプ汚染

プロトタイプ汚染

セキュリティ Svenska → 更新: 2026-10-22

攻撃者が Object.prototype を書き換え、アプリ内のすべてのオブジェクトに影響を及ぼすJavaScriptの脆弱性。

JavaScriptの継承モデルを突いたものだ。すべてのオブジェクトは Object.prototype を継承しているため、obj["__proto__"]["isAdmin"] = true を実行すると、他のすべてのオブジェクトにも isAdmin = true が生えてしまう。典型例はlodashのディープマージ/クローン(CVE-2018-16487、2019年)、jQueryの $.extend、多数のExpress向けボディ解析パッケージである。ペイロードが適切なプロトタイプ属性(shell、argv など)を狙うと、RCEにまで発展することが多い。対策は Object.freeze(Object.prototype)、Nodeの --disable-proto=throw、信頼できない入力をディープマージしないことだ。

← 用語集に戻る