コンテンツへスキップ
uencoder

Use-After-Free

ユースアフターフリーとは、すでに解放されたメモリを指すポインタを参照解除することで、攻撃者が制御するデータを読み取ったり、コード実行を達成したりしうる脆弱性である。

目的

UAF脆弱性の仕組みと防御策を理解すること。C/C++で書かれたブラウザやカーネルでよく見られる重大な脆弱性である。

メカニズム

free後もポインタがNULL化されず、後の参照解除が再利用済みメモリにアクセスする。攻撃者がヒープスプレーでそのメモリ内容を制御できれば、オブジェクトのvtableを偽造してコード実行を達成できる。防御策は、ポインタのNULL化、スマートポインタ、ヒープ分離である。

ユースケース

  • ブラウザの脆弱性解析
  • カーネルセキュリティ監査
  • メモリ安全性

関連ツール

References