Security Lab

Несколько уязвимостей в Windows XP ядре

Дата публикации:20.02.2004
Дата изменения:17.10.2006
Всего просмотров:3440
Опасность:
Низкая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: Windows XP Kernel

Описание: Несколько уязвимостей обнаружено в Windows XP ядре в некоторых отладочных функциях. Локальный пользователь с привилегиями 'SeDebugPrivilege' может выполнить произвольный код в режиме ядра.

Недостаток обнаружен в функции NtSystemDebugControl(), которая может эксплуатироваться через функцию ZwSystemDebugControl() в ntdll.dll. Функция NtSystemDebugControl() выполняется в ring 0 (т.е. в режиме ядра).

Локальный пользователь с соответствующими привилегиями может использовать SYSENTER/SYSCALL инструкции (через NtSystemDebugControl() функцию) чтобы записать в IA32_SYSENTER_EIP регистр (MSR) и изменить MSR таким образом, чтобы он ссылался на произвольный код пользователя.

Также локальный пользователь может изменить interrupt dispatch table (IDT) запись, чтобы она ссылалась на произвольный код пользователя. Недостаток в подфункции ввода/вывода в NtSystemDebugControl() не в состоянии проверить правильность указателя в IO_STRUCT, так что ядро может прочитать из порта ввода-вывода ( например 80h BIOS POST). В результате локальный пользователь может сначала записать в порт ввода-вывода и затем заставить ядро писать произвольные данные в произвольные участки памяти.

Похожая уязвимость обнаружена в функциях DebugSysReadBusData() и DebugSysWriteBusData(), в которых не проверяется значение BUS_STRUCT. Локальный пользователь может заставить ядро записать произвольные данные в произвольные участки памяти.

Пример/Эксплоит: http://www.SecurityLab.ru/_exploits/winxp_exp.c.txt

URL производителя:http://www.microsoft.com/technet/security/

Решение:Способов устранения обнаруженной уязвимости не существует в настоящее время. Удалите всех пользователей и группы из"Debug Programs" в "Local Security Policy\ Security Settings\ Local Policies\ User Rights Assignments”.

Ссылки: Multiple WinXP kernel vulns can give user mode programs kernel mode privileges