Time of check to time of use
Unixにおいて、setuidプログラム中の以下のCコードにはTOCTTOUのバグが存在する。
ここで、access は、このsetuidプログラムを実行したユーザーが、通常はファイルの書き込み権限を持っているかをチェックしている(すなわち、accessは実効UIDではなく実UIDをチェックする)。
この競合状態は、以下の攻撃に対して脆弱である。
この例では、攻撃者はaccessとopenの競合状態を悪用し、システムのパスワードデータベースを上書きすることが可能である。すなわちTOCTTOUは、マシンの管理者権限を得る権限昇格攻撃に利用されうる。
一連の命令は正確なタイミングで実行されなければならないが、この条件を整えることは攻撃者にとってそれほど難しいことではない。
この攻撃が示唆するところは、オペレーティングシステムによって管理される状態(この場合はファイルシステム名前空間)がシステムコールの間に変更されないとは保証されないということである。