Use-After-Free
ユースアフターフリーとは、すでに解放されたメモリを指すポインタを参照解除することで、攻撃者が制御するデータを読み取ったり、コード実行を達成したりしうる脆弱性である。
目的
UAF脆弱性の仕組みと防御策を理解すること。C/C++で書かれたブラウザやカーネルでよく見られる重大な脆弱性である。
メカニズム
free後もポインタがNULL化されず、後の参照解除が再利用済みメモリにアクセスする。攻撃者がヒープスプレーでそのメモリ内容を制御できれば、オブジェクトのvtableを偽造してコード実行を達成できる。防御策は、ポインタのNULL化、スマートポインタ、ヒープ分離である。
ユースケース
- ブラウザの脆弱性解析
- カーネルセキュリティ監査
- メモリ安全性