[ << ALL_FEED ]

How to CVE-2025-54916? Low-effort vulnerability research

Ещё в группе «Windows»

How to CVE-2025-54916? Low-effort vulnerability research 💻

Привет, на связи ESC-VR.

Формат поста в телеграме редко подходит для разборов комплексных уязвимостей, но баг, найденный нами в недрах NTFS, исправленный сентябрьским патчем, можно было найти весьма необычным способом (и мы смогли уложить рассказ об этом в пост).

Если вы интересуетесь анализом уязвимостей, наверняка слышали про CodeQL, SonarQube, Snyk, Semgrep — классические SAST-системы. Их общий минус: чаще всего нужен полный доступ к исходникам. Когда его нет, ценность таких инструментов быстро стремится к нулю, а сложность запросов мешает применять их к декомпилированным листингам или фрагментам кода.

Нужно что-то простое, с понятным языком запросов и без требования полной кодовой базы. Такое решение есть — это weggli-rs: интерактивная, консольная утилита для выполнения семантического поиска. Она подходит для поиска по декомпилированным листингам и частичным кодовым базам.

Что мы называем «частичными кодовыми базами»? Например, утекшие исходники Windows XP SP1, слитые в 2020 году. Несмотря на возраст, это бесценный источник знаний о внутренностях современной Windows.

🎯 Наша цель: найти классические переполнения стека через вызовы memcpy/memmove. Ищем функцию, где:

• на стеке объявлен буфер;
• есть вызов memcpy/memmove;
• в первый аргумент передается адрес этого стекового буфера.

Этого достаточно, чтобы собрать множество кандидатов на stack buffer overflow (не все, но многие). Запрос на weggli:

weggli -R "$func=RtlCopyMemory|memmove|memcpy" "_ $v; $func(&$v,_,_)"
Code language: PowerShell (powershell)


Дальше нужно сужать выборку. Например, требуем, чтобы размер копируемого буфера задавался выражением с вычитанием. Таким образом мы подсвечиваем места с риском целочисленного underflow:

weggli.exe -R "$func=RtlCopyMemory|memmove|memcpy" "_ $v; $func(&$v,_,_(_-_))"
Code language: PowerShell (powershell)


Уязвимость, закрытую в сентябре, можно было подсветить таким запросом:

weggli -R "$func=RtlCopyMemory|memmove|memcpy" "_ $v; $func(&$v,_,_($a->$b))
Code language: PowerShell (powershell)


В данном шаблоне мы ищем все функции, в которых:

• на стеке объявлен буфер;
• есть вызов memcpy/memmove;
• в первый аргумент передается адрес этого стекового буфера;
• размер копируемого буфера определяется полем какой бы то ни было структуры.

В заключение мы призываем вас попробовать использовать weggli-rs и найти исправленную уязвимость в исходном коде Windows XP SP1.

HINT: кажется, искать нужно в base/fs, а в названии уязвимой функции было что-то связанное с записью в лог или еще куда 😏

А если вы хотите узнать, как стриггерить эту уязвимость, то ознакомьтесь с нашим предыдущим исследованием, опубликованным в блоге PT SWARM.

#escvr #cve #win
@ptescalator

Ещё от author_vr

Ещё от author_vr

Ещё в группе «Windows»