TOCTOU-уязвимость
Что такое TOCTOU-уязвимость?
TOCTOU-уязвимостьСостояние гонки между моментом проверки и моментом использования: проверенное условие безопасности меняется до выполнения связанной операции.
TOCTOU-уязвимость (Time-Of-Check to Time-Of-Use, CWE-367) — частный случай состояния гонки: программа проверяет свойство ресурса (владелец, права, содержимое) и затем работает с ним, словно проверка всё ещё актуальна. Атакующий, способный заменить ресурс между двумя шагами — обычно через симлинки, rename или общую память, — полностью обходит проверку. Классический пример — access(), а затем open(): после успешного access() атакующий подменяет путь символической ссылкой на /etc/shadow. Защита — API, объединяющие проверку и использование (openat с O_NOFOLLOW, fstat), работа с дескрипторами вместо путей, файловые блокировки и более строгие границы песочниц.
● Примеры
- 01
Setuid-программа, проверяющая владельца через stat() и затем открывающая путь.
- 02
Побег из контейнера через TOCTOU на путях bind-mount.
● Частые вопросы
Что такое TOCTOU-уязвимость?
Состояние гонки между моментом проверки и моментом использования: проверенное условие безопасности меняется до выполнения связанной операции. Относится к категории Уязвимости в кибербезопасности.
Что означает TOCTOU-уязвимость?
Состояние гонки между моментом проверки и моментом использования: проверенное условие безопасности меняется до выполнения связанной операции.
Как защититься от TOCTOU-уязвимость?
Защита от TOCTOU-уязвимость обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия TOCTOU-уязвимость?
Распространённые альтернативные названия: TOCTTOU, Check-then-Use.