prototype汚染攻撃
#Node.js #セキュリティ #Deno
各種ランタイムでの対応
Deno
DenoではデフォルトでObject.prototype.__proto__が削除されています (runtime/js/99_main.js)
--unstable-unsafe-protoでこの挙動は無効化可能です (ただし、推奨はされません)
パッケージ
bourne
JSON.parse() drop-in replacement with prototype poisoning protection
fastifyが利用している。
各種パッケージにおける対応
deno_std/dotenv
fix(dotenv): prevent prototype pollution during parsing (#6661)
参考
Object.prototype.__proto__
JavaScript Prototype Poisoning Vulnerabilities in the Wild
JavaScriptのプロトタイプ汚染攻撃対策は難しい
ECMAScript Annex B と型定義、ついでに ES2022 __proto__