
これは、TypeORM バージョン < 0.2.25 における重大なプロトタイプ汚染の脆弱性である CVE-2020-8158 を実証する概念実証(PoC)です。
攻撃者は次のことが可能です:
この脆弱性は、データベースのクエリ結果を処理する際の TypeORM のオブジェクト逆シリアル化処理に存在します。このライブラリは、__proto__、constructor、prototype などのプロトタイプを汚染するキーをサニタイズせずに、ユーザー制御のデータをオブジェクトに不正にマージします。
問題は、TypeORM が適切な検証なしに生のクエリ結果からエンティティオブジェクトへプロパティを再帰的に割り当てる、エンティティのハイドレーション/逆シリアル化プロセスにあります。
vulnerable-app.ts - 脆弱な TypeORM アプリケーション(バージョン < 0.2.25)exploit.ts - 概念実証エクスプロイトpatched-app.ts - パッチ適用版(バージョン >= 0.2.25)package.json - 依存関係詳細なセットアップと悪用手順については、SETUP.md を参照してください。