CyberGlossary

脆弱性

ヒープオーバーフロー

別称: ヒープバッファオーバーフロー

定義

動的に確保したメモリ上で発生するバッファオーバーフロー。アロケータのメタデータ、関数ポインタ、オブジェクトの vtable などが破壊されることが多い。

ヒープオーバーフローは、ヒープ上に確保されたバッファの末尾を越えて書き込み、隣接チャンクや malloc/free・jemalloc・mimalloc などのアロケータのメタデータを破壊します。ヒープ配置は非決定的なため、悪用では "heap grooming" や "feng shui" によって、関数ポインタ、vtable、スマートポインタの制御ブロック、重要な状態などの有用な標的を脆弱なバッファの隣に配置します。最新のアロケータはメタデータを強化し、チャンクを分離し、ガードページを挿入します。ASLR、CFI、サンドボックス、メモリ安全言語が影響をさらに抑えます。ブラウザ・カーネル・文書パーサの悪用で中心的な役割を担い、Pwn2Own 入賞例にも多く登場します。

  • CVE-2018-4407:XNU カーネルの TCP ヒープオーバーフロー。
  • Pwn2Own で繰り返し悪用された Chrome の JavaScript エンジンのヒープオーバーフロー。

関連用語