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