Обнаружена уязвимость в версиях Windows с 8-й по 10-ю, вызывающая взаимную блокировку (deadlock) в файловых операциях.
Проблема затрагивает версии операционной системы с 8-й по 10-ю.
Обнаружена уязвимость в версиях Windows с 8-й по 10-ю, вызывающая взаимную блокировку (deadlock) в файловых операциях. Уязвимы, скорее всего, все версии Windows, однако на версиях ниже 8-й попытки воспроизвести ее не предпринимались.
-
Процедуры из трех операций LockFile + WriteFile + UnlockFile;
-
Два потока, конкурентно выполняющие процедуру;
-
В результате возникает взаимная блокировка между потоками, но процесс можно убить без видимых последствия для ядра.
В качестве побочного эффекта замечено, что в результате взаимной блокировки утилита Process Hacker для мониторинга системных процессов и служб не может получить имя файла по проблемному хендлу. Хендл становится "unnamed" и исчезает из отображаемого набора (при наличии соответствующего флажка по умолчанию).
После воспроизведения проблемы хендл становится "отравленным", т.е. будут блокироваться все функции, которые попытаются работать с файлом (объектом FileObject внутри ядра). Теоретически, ошибка позволяет спровоцировать отказ в обслуживании многопоточность приложения, в котором LockFile используется для разделения доступа с последующим WriteFile. Удаленная атака тоже возможна, если приложение обрабатывает какие-либо приходящие снаружи запросы.Взаимная блокировка – ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.