Security Lab

Переполнение буфера в Winamp

Дата публикации:04.01.2003
Всего просмотров:1114
Опасность:
Средняя
Наличие исправления: Нет
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Компрометация системы
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: WinAMP 3.x
Описание: Winamp поддерживает проигрывание b4s-файлов, которые составляются посредством xml. Синтаксис таков:
 

<?xml version="1.0" encoding='UTF-8' standalone="yes"?>
<WinampXML>
<!-- Generated by: Nullsoft Winamp3 version 3.0 -->
<playlist num_entries="[кол-во записей]" label="[название_list'a]">

<entry Playstring="file:[путь_к_звуковому_файлу]">
<Name>[названи_песни]</Name>
<Length>[величина_в_байтах]</Lengt>
</entry>

</playlist>
</WinampXML>
Переполнение буфера происходит при обработке чрезмерно длинного названия листа (4-ая строчка). Причём, есть некоторые нюансы:

При получении 16 398 байт переполнение происходит только при ВЫХОДЕ из WinAmp'a. 4-мя байтами затирается eax и retaddr (причём, ret Находится в регистре eax). Если же название листа ещё увеличить на ~100b, переполнение произойдёт сразу же при запуске. 12-ю байтами перезапишутся ecx, esi и retaddr (ук-тесь стэка в момент "падения" 0x1007C340). Хотя, имхо, что касается адрессного пространства, данные могут разниться в зависимости от билда WinAmp'a и вообще операционной системы (это наврятли). Так или иначе, составить b4s'ку, протроянивающую систему, не составляет никакого труда.

Уязвимость обнаружена D4rkGr3y из Damage Hacking Group