CyberGlossary

Уязвимости

Состояние гонки

Также известно как: Гонка состояний

Определение

Дефект, при котором безопасность или корректность системы зависит от тайминга или порядка параллельных операций, позволяя атакующему вклиниваться и обходить проверки.

Состояние гонки возникает, когда несколько потоков, процессов или акторов обращаются к общему состоянию без надлежащей синхронизации, и атакующий может «выиграть» временное окно, чтобы наблюдать промежуточное состояние или изменить его между операциями. Значимые для безопасности варианты — TOCTOU (check-then-use), нарушения атомарности в финансовой логике и баги повторного входа в обработчиках сигналов. Эксплуатация часто требует точного планирования, давления на ядро через пулы потоков или трюков с файловой системой (rename, символические ссылки). Защита — корректные блокировки, транзакции, атомарный compare-and-swap, API на файловых дескрипторах (openat, fstatat), идемпотентный дизайн, инструменты вроде ThreadSanitizer.

Примеры

  • CVE-2016-5195 (Dirty COW): состояние гонки в обработке COW ядра Linux.
  • Файловая гонка, позволяющая подменить файл между access() и open().

Связанные термины