Race condition / TOCTOU
Podatność, w której stan zmienia się między SPRAWDZENIEM czegoś a UŻYCIEM tego (Time-Of-Check to Time-Of-Use). Atakujący wykorzystuje maleńkie okno czasowe, by wsunąć zmianę po sprawdzeniu, a przed użyciem.
Klasyczny przykład: program sprawdza, czy użytkownik ma prawo odczytać plik X (check), a potem go otwiera (use). Między tymi krokami atakujący podmienia X na dowiązanie symboliczne do tajnego pliku → sprawdzenie dotyczyło niewinnego pliku, ale użycie trafia w tajny. Ogólniej: każda sekwencja „sprawdź, potem działaj” bez atomowości da się wykorzystać, jeśli atakujący może zmienić stan w tym oknie. Inne przypadki: podwójne wypłaty z salda (sprawdź saldo, odejmij — uruchomione dwa razy równolegle), TOCTOU w systemie plików i wyścigi w uwierzytelnianiu. Obrona: uczynić operację atomową (otwórz plik i sprawdzaj otwarty uchwyt, nie ścieżkę), użyć blokad i transakcji oraz nie zakładać, że stan między krokami się nie zmieni. Subtelna, ale poważna klasa błędów. Pokrewna IDOR i niebezpiecznej deserializacji.