NTFS + VHD = SYSTEM: как обмануть ядро Windows, если знаешь пару тонкостей про $LogFile
NewsMakerМеханизм логирования оказался троянским конём.
Исследователь из Positive Technologies обнаружил критическую уязвимость в реализации файловой системы NTFS, которая позволяет локальному атакующему получить привилегии SYSTEM через специально подготовленный виртуальный диск (VHD). Уязвимость получила идентификатор CVE-2025-49689 и затрагивает Windows 11 версии 22H2.
Проблема связана с механизмом Log File Service (LFS), используемым NTFS для ведения журнала транзакций. Во время монтирования диска NTFS вызывает цепочку функций
В результате возникает чтение данных за пределами допустимого диапазона и последующее копирование большого объема памяти с помощью
Дальнейшее развитие атаки возможно за счёт подделки структуры
Этот вызов позволяет перехватить выполнение в колбеке
Для устойчивой эксплуатации задействован механизм IO_RING, позволяющий перезаписать указатель на буфер в структуре
Полученные возможности позволяют не только читать содержимое ядра, но и исполнять произвольный код с максимальными привилегиями. В демонстрации использован классический приём — подмена токена пользователя на SYSTEM.
Эксплойт работает даже в системах с включёнными митигациями CFG и HVCI, что делает угрозу особенно значимой. Исследователь предлагает возможные направления для усиления надёжности эксплуатации: более точное управление исчерпанием памяти, обход SMAP и предотвращение ранних сбоев ядра до достижения нужного контекста.
На момент публикации обновления безопасности от Microsoft не выпущено. Рекомендуется избегать монтирования VHD-дисков из непроверенных источников и контролировать системные события, связанные с работой

Исследователь из Positive Technologies обнаружил критическую уязвимость в реализации файловой системы NTFS, которая позволяет локальному атакующему получить привилегии SYSTEM через специально подготовленный виртуальный диск (VHD). Уязвимость получила идентификатор CVE-2025-49689 и затрагивает Windows 11 версии 22H2.
Проблема связана с механизмом Log File Service (LFS), используемым NTFS для ведения журнала транзакций. Во время монтирования диска NTFS вызывает цепочку функций
ntfs!NtfsMountVolume
→ ntfs!InitializeRestartState
→ ntfs!ReadRestartTable
, где происходит некорректная обработка поля ClientDataLength
в структуре LFS_RECORD
. При установке этого поля в значение 0xFFFFFFFF
возникает переполнение при вычислении длины записи и обход критической проверки. В результате возникает чтение данных за пределами допустимого диапазона и последующее копирование большого объема памяти с помощью
memmove
, что приводит к чтению за границами выделенного буфера из $LogFile
. Для активации уязвимости необходимо подменить LFS-структуры в VHD и обойти механизм кеширования Lfcb->CachedRestartArea
, чтобы система принудительно прочитала поддельный RESTART_AREA
с фальшивой таблицей атрибутов. Дальнейшее развитие атаки возможно за счёт подделки структуры
OPEN_ATTRIBUTE_DATA
, которая содержит указатель на SCB
— объект управления файловыми потоками. NTFS использует эту структуру в функции NtfsCloseAttributesFromRestart
, где происходит работа с AVL-деревом через вызов RtlDeleteElementGenericTableAvl
. Этот вызов позволяет перехватить выполнение в колбеке
CompareRoutine
и провести запись произвольных данных по произвольному адресу в памяти ядра. В качестве инструмента управления потоком исполнения исследователь использует функцию RtlpFcBufferManagerReferenceBuffers
, превращая контроль над деревом в примитив write-what-where. Для устойчивой эксплуатации задействован механизм IO_RING, позволяющий перезаписать указатель на буфер в структуре
_IORING_OBJECT
и получить доступ к произвольной записи в память ядра. Дополнительно применяется классический приём с pipe-based memory allocation для обхода SMEP/SMAP, а также цепочка подделок: SCB → FCB → VCB. Полученные возможности позволяют не только читать содержимое ядра, но и исполнять произвольный код с максимальными привилегиями. В демонстрации использован классический приём — подмена токена пользователя на SYSTEM.
Эксплойт работает даже в системах с включёнными митигациями CFG и HVCI, что делает угрозу особенно значимой. Исследователь предлагает возможные направления для усиления надёжности эксплуатации: более точное управление исчерпанием памяти, обход SMAP и предотвращение ранних сбоев ядра до достижения нужного контекста.
На момент публикации обновления безопасности от Microsoft не выпущено. Рекомендуется избегать монтирования VHD-дисков из непроверенных источников и контролировать системные события, связанные с работой
$LogFile
.