Несколько уязвимостей в Windows XP ядре
Программа: 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. Локальный пользователь может заставить ядро записать произвольные данные в произвольные участки памяти.
Решение: Способов устранения обнаруженной уязвимости не существует в настоящее время. Удалите всех пользователей и группы из"Debug Programs" в "Local Security Policy\ Security Settings\ Local Policies\ User Rights Assignments”.
www.securitylab.ru
|