CyberGlossary

脆弱性

解放後使用(Use-After-Free)

別称: UAF

定義

free 済みのメモリをプログラムが使い続けるメモリ安全性のバグ。攻撃者にオブジェクト状態の操作と制御フロー奪取を許すことが多い。

Use-After-Free(UAF)は、free()/delete でオブジェクトのメモリが解放された後もポインタが参照し続ける状態を指します。攻撃者が同じ領域を別オブジェクトとして再確保させられれば、ダングリングポインタは完全な型混乱として働き、仮想関数テーブルへのポインタやコールバックアドレス、重要な状態を上書きできます。UAF はブラウザやカーネルのエクスプロイトを支配します(CWE-416)。防御には RAII やスマートポインタによる厳格な所有権モデル、GC・メモリ安全言語、隔離キャッシュ・分離プール・GWP-ASan を備える強化アロケータ、KASAN や Valgrind を用いたテストが含まれます。ブラウザは MiraclePtr や PartitionAlloc 系のガードも併用します。

  • CVE-2018-8174(VBScript エンジン):APT に悪用された UAF。
  • CVE-2022-0609(Chrome アニメーション):ゼロデイとして悪用された UAF。

関連用語