Серия однотипных уязвимостей в Kaspersky Antivirus, Far и cmd.exe
dl // 11.02.03 18:16
Во всех случаях используется возможность создания файлов на NTFS, пути до которых имеют длину, превышающую 256 символов, допустимых Windows API.
[Не забывайте при копировании материала указывать полный адрес источника: http://www.bugtraq.ru/rsn/archive/2003/02/23.html]
Для предотвращения проверки длины фунциями API может быть использован префикс "\\?\ ", все это документировано.
Теперь к чему это приводит:
FAR вплоть до версий 1.70beta1 сваливается с переполнением буфера, в версии 1.70beta4 осуществляется проверка на превышение 260 символов, но спотыкается на строго 260 символах (обещано исправление в b5).
cmd.exe от NT4 получает переполнение буфера, от 2к - оказывается "запертым" в этом каталоге (перестают работать команды типа cd ..), что делает возможным DoS на батч-файлы.
Антивирус Касперского (4.0.9.0, Workstation и Server-версии):
- монитор вылетает или уходит в 100-процентную загрузку процессора;
- сканер пропускает подобные длинные пути;
- оказывается возможным создать файлы с именами вида aux.com, которые также пропускаются сканером.
Примеры батч-файлов для создания подобных файлов можно найти по ссылке, приведенной ниже.
Справедливости ради надо отметить, что под XP выполнение этих команд из-под cmd.exe приводит к сообщению "Access is denied".