0Day в Windows. Простой сбой превращается в права администратора

leer en español

0Day в Windows. Простой сбой превращается в права администратора

0patch нашла не закрытый 0Day, позволяющий обычному пользователю обрушить службу RasMan в Windows.

image

Компания 0patch сообщила, что во время анализа уязвимости CVE-2025-59230 в службе Windows Remote Access Connection Manager (RasMan), которую Microsoft закрыла обновлениями за октябрь 2025 года, исследователи нашли рабочий эксплойт, дающий локальное выполнение кода с правами Local System из-под обычного пользователя. Но вместе с ним обнаружилась и другая проблема: в эксплойте был отдельный приём, позволяющий непривилегированному пользователю «уронить» RasMan, и эта уязвимость, по словам авторов, до сих пор не исправлена.

CVE-2025-59230 устроена довольно просто: при запуске RasMan регистрирует RPC-эндпоинт, к которому затем подключаются другие службы и доверяют ответам. Если RasMan не запущен, любой процесс, включая пользовательский эксплойт без админских прав, может зарегистрировать тот же RPC-эндпоинт раньше и заставить привилегированные службы подключиться к «поддельной» точке. Дальше это доверие можно использовать, чтобы подсунуть инструкции, ведущие к выполнению кода атакующего.

Проблема, однако, в практической эксплуатации: RasMan обычно стартует автоматически вместе с Windows (авторы отмечают, что в Windows 11 служба может быть настроена как «вручную», но всё равно запускается при старте системы), поэтому «поймать» момент, когда RasMan не работает, почти нереально — даже запланированная задача, созданная злоумышленником, не успеет «обогнать» службу и первой зарегистрировать RPC-эндпоинт.

Из-за этого эксплойту нужно уметь ещё и остановить RasMan, чтобы освободить нужный RPC-эндпоинт. Именно такой второй шаг и оказался отдельной уязвимостью: непривилегированный пользователь может аварийно завершить RasMan, то есть вызвать отказ в обслуживании и тем самым расчистить путь для дальнейшей атаки по CVE-2025-59230.

Разобравшись в причине падения, 0patch привязала проблему к ошибке в логике обхода циклического связанного списка. Код выходит из цикла, когда текущий элемент списка указывает на первый элемент, то есть когда список пройден целиком. Внутри цикла есть «разумная» проверка на NULL у указателя текущего элемента: если указатель не NULL, читается значение и при определённых условиях цикл может завершиться.

Но если указатель оказался NULL, выполнение не прерывается — наоборот, код пытается взять указатель на следующий элемент, разыменовывая NULL. Это приводит к ошибке доступа к памяти и падению RasMan. Авторы подчёркивают, что такую ошибку легко представить в реальной разработке: функция ожидает корректный циклический список, а NULL-проверка могла быть добавлена «на всякий случай» и никогда не отрабатывала в тестах, поэтому её правильность не проявилась.

Микропатч 0patch, как описано в публикации, добавляет недостающую развилку: при обнаружении NULL цикл должен завершаться, а не продолжать обход. В демонстрации указывается, что без включённого 0patch эксплойт способен обрушить RasMan, а с включённым агентом падения не происходит (при этом в видео, по замечанию авторов, подсвечена близкая по названию служба Remote Access Auto Connection Manager).

По данным 0patch, микропатчи уже выпущены и распространяются поддерживаемых версий Windows — от актуальных выпусков Windows 11 и Windows 10 до Windows 7, а также для ряда серверных редакций, включая Windows Server вплоть до Server 2025, при условии что системы полностью обновлены.