IT用語集 › セキュリティ › レースコンディション / TOCTOU

レースコンディション / TOCTOU

セキュリティ Svenska → 更新: 2026-10-23

プログラムが何かを「検査」してから「使用」するまでの間に状態が変わってしまう脆弱性(Time-Of-Check to Time-Of-Use)。攻撃者はその一瞬の隙を突く。

古典的な例はこうだ。プログラムが「このユーザーはファイルXを読めるか」を検査し、その後でXを開く。この二つの間に攻撃者がXを機密ファイルへのシンボリックリンクに差し替えると、検査は無害なファイルに対して行われたのに、実際に開かれるのは機密ファイルになる。より一般に、アトミックでない「確認してから実行」の手順は、間に状態を変えられる限り攻撃の余地がある。ほかにも、残高の確認と引き落としを並列に二回走らせる二重引き出しや、認証処理での競合などがある。

対策は操作をアトミックにすること(パスではなく、開いたハンドルを検査する)、ロックやトランザクションを使うこと、手順の間で状態が変わらないと仮定しないことである。地味だが深刻なバグの一類型である。

← 用語集に戻る