フォーマットバグ
読み:フォーマットバグ
外語:format bug
printf(3)、即ちC言語のprintf関数のフォーマット文字列にユーザー入力をそのまま指定することによって生じるバグ。
これを利用した攻撃をフォーマット攻撃といい、バッファーオーバーフロー攻撃と並ぶトレンドとなった。
概要
これを利用して任意のコードを実行可能になるため、SUIDされたプログラムやデーモンでは深刻なセキュリティホールになり得る。これはwu_ftpdやglibcなどに存在した。
フォーマット文字列に%sなどを指定した場合は単にスタック上のデータが表示されるだけで済むが、%nを指定した場合には引数が指すアドレスの内容を書き換えることができる。これを利用してスタック中にあるリターンアドレスを書き換え、任意のコードを実行させることが可能。
再検索