TOCTOU
Time-of-Check to Time-of-Use。プログラムが検査してから使用するまでの間に、攻撃者が対象を差し替える競合状態。
典型例はこうだ。特権プロセスがaccess(path)でユーザーに読み取り権限があるかを確かめ、その後open(path)する。攻撃者は2つのシステムコールの間にシンボリックリンクを差し替える。結果、「ユーザーに代わってrootとして」/etc/shadowが読まれてしまう。
対策は、パスを使うシステムコールを避け、特定のinodeを指すファイル記述子版(openat、fstat)を使うことだ。O_NOFOLLOWやRESOLVE_BENEATHも有効である。Windowsにも、oplockやNTFSジャンクションを使った同種の手口がある。