CyberGlossary

脆弱性

スタックオーバーフロー脆弱性

別称: スタックバッファオーバーフロー, スタック破壊

定義

プログラムのスタック上で発生するバッファオーバーフロー。多くの場合、保存された戻りアドレスや関数ポインタを上書きして実行を奪う。

スタックオーバーフローはメモリ破壊系エクスプロイトの歴史的な原型です。境界チェックなしにスタック上のバッファへ書き込みが行われると、隣接するフレームポインタや保存された戻りアドレスを上書きし、攻撃者は制御フローを攻撃者制御のバイト列(shellcode や ROP ガジェット)へ誘導できます。防御策にはスタックカナリア(StackGuard、/GS)、実行不可スタック(DEP/NX)、ASLR、シャドースタック、Intel CET、コンパイラレベルの FORTIFY_SOURCE、安全な文字列関数の利用などがあります。緩和策が数十年蓄積されても、ファームウェア・IoT・レガシーソフトでは古典的なスタックオーバーフローが依然頻発し、CVE や CTF で繰り返し取り上げられます。

  • CVE-2003-0352(DCOM RPC):Blaster ワームがスタックオーバーフローを悪用。
  • CVE-2019-0708(BlueKeep):リモートデスクトップサービスのスタックオーバーフロー。

関連用語