Обнаружена уязвимость в Антивирусе Касперского (KAV)

8/04/2005 16:52

Как сообщает новостной канал "Антидеза" (он же Веб-лог Андэграунда), созданный и ведущийся ребятами из HangUP Team, давно известной своей "нелюбовью" как к самому Евгению Касперскому, так и к выпускаемому им продукту под названием "Антивирус Касперского" (он же KAV), элитные кодеры из ЛК допустили грубую ошибку в перехватчике вызова ZwOpenProcess. Перехватчик преследует цель сделать процесс антивируса неубиваемым и выглядит следующим образом:
NTSTATUS NewZwOpenProcess (
OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId OPTIONAL)
{
if (ClientId->UniqueProcess == MyPid) return STATUS_ACCESS_DENIED;
else return RealZwOpenProcess(ProcessHandle, DesiredAccess,
ObjectAttributes, ClientId);
}
Казалось бы все верно, но в этом коде нет проверки указателя ClientID на валидность. Первая строка обращается к этому указателю напрямую без его проверки. Таким образом, передав в последнем параметре функции NtOpenProcess 0, мы получим синий экран. Для эксплойта уязвимости достаточно сделать следующий вызов под любыми правами в пользовательском режиме:
NtOpenProcess(NULL, NULL, NULL, NULL);
Как пишут ребята с "Антидезы": "Это не шутка, данный эксплойт теперь будут использовать в вирусах. Кстати, данный казус вполне подпадает под статью 273 УК "Создание вредоносного ПО". Компетентным органам стоит заняться расследованием и наказанием виновных".
Подробнее
Оригинал от автора уязвимости