Состояние гонки / TOCTOU
Уязвимость, при которой состояние меняется между моментом, когда программа ПРОВЕРЯЕТ что-то, и моментом, когда она ЭТО ИСПОЛЬЗУЕТ (Time-Of-Check to Time-Of-Use). Атакующий успевает подменить данные в крошечном окне между проверкой и использованием.
Классический пример: программа проверяет, есть ли у пользователя право читать файл X (проверка), а затем открывает X (использование). Между двумя шагами атакующий заменяет X символической ссылкой на секретный файл — проверка прошла для безобидного файла, а открыт оказывается секретный. В общем виде эксплуатируема любая последовательность «проверь, затем действуй» без атомарности: двойное списание со счёта (проверили баланс, вычли — в двух параллельных запросах), гонки в файловой системе, гонки в аутентификации. Защита: делать операцию атомарной (открывать файл и проверять уже открытый дескриптор, а не путь), использовать блокировки и транзакции, не полагаться на неизменность состояния между шагами. Тонкий, но серьёзный класс ошибок. Родственен IDOR и небезопасной десериализации.