型混乱の脆弱性
型混乱の脆弱性 とは何ですか?
型混乱の脆弱性実際の確保型と矛盾する型を介してオブジェクトへアクセスしてしまうメモリ安全性のバグで、任意読み書きやコード実行に直結することが多い。
型混乱(Type Confusion)脆弱性は、宣言された型と実体の型が異なるポインタや参照を通じてメモリを読み書きしてしまうことで発生します。典型的な原因として、誤った下位キャスト、ポリモーフィズムの取り扱いミス、攻撃者が形状を変えられる前提で行われた JIT のスペキュレーション最適化などがあります。ランタイムが構造体を誤った型として扱うと、メソッド、vtable、長さフィールド、インラインデータの解釈がずれ、攻撃者は制御された任意の読み書きプリミティブを得て、しばしばコード実行に到達します。Chrome の V8、Safari の JSC などの JavaScript エンジンやブラウザのレンダラーが頻繁な標的で、Pwn2Own でもよく登場します。対策には、強い型システム、ランタイムチェック、サンドボックス化、メモリ安全な言語の採用があります。
● 例
- 01
CVE-2021-30551:V8 の型混乱を 0-day として Chrome に悪用。
- 02
本来 dynamic_cast が必要な箇所で static_cast を使い、無関係なオブジェクトへ書き込んでしまう C++ コード。
● よくある質問
型混乱の脆弱性 とは何ですか?
実際の確保型と矛盾する型を介してオブジェクトへアクセスしてしまうメモリ安全性のバグで、任意読み書きやコード実行に直結することが多い。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
型混乱の脆弱性 とはどういう意味ですか?
実際の確保型と矛盾する型を介してオブジェクトへアクセスしてしまうメモリ安全性のバグで、任意読み書きやコード実行に直結することが多い。
型混乱の脆弱性 からどのように防御しますか?
型混乱の脆弱性 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
型混乱の脆弱性 の別名は何ですか?
一般的な別名: 不正キャスト, 型不一致バグ。