[Homeros] Q: xmms2 и вопросы безопасности

Michael Pozhidaev msp на altlinux.ru
Пт Май 14 03:41:22 UTC 2010


Hello, Дмитрий Падучих!

> Последняя версия - 0.7 DrNo.
> http://ftp.de.debian.org/debian/pool/main/x/xmms2/xmms2_0.7DrNo.orig.tar.bz2

Homeros нужен плеер для пользователей emacs, но xmms2 мы брать не
будем. Прошу поклонников на меня не обижаться. Объективная
реальность. Техническое обоснование:

1. авторы взяли идею сделать свой IPC, дают доступ к объектам на основе
данных от клиента, но механизм проверки прав доступа отсутствует. Как
понимаю, ключевой код этого дела лежит в функции process_msg() в файле
src/xmms/ipc.c. Находим объект, выбираем сообщение  и вперёд. Объектом
может быть и плейлист, и добавление в него нового элемента делается
аналогично без проверок. См. функция xmms_playlist_add_entry() в файле
playlist.c;

2. uid пользователя никак не достают. SCM_CREDENTIALS отсутствует. Код
создания UNIX сокета -- обычный код такого рода. Ничего
интересного. Кроме того, поддерживаются TCP/IP сокеты, где совсем всё
плохо;

3. понижения привилегий процесса не видно. grep не находит ни одного
setuid();

4. в общем проверки прав не видно ни самостоятельной, ни через функции
операционной системы. Можно ещё потом посидеть, поискать код чтения
файла, чтобы докопаться до самого дна, но он может быть завёрнут в
обработку URL'ов, да это уже и не очень интересно;

5. напоследок ещё увидел, что авторы не прочь попользовать goto, который
в наше время вообще производит плохое впечатление. Он хоть и вниз был,
но как-то это не кузяво.

С авторами пообщаться, чтоли? Есть у них соображения или нет. Вообще,
такой код от рута лучше не пускать.

-- 
Michael Pozhidaev. Tomsk, Russia. E-mail: msp на altlinux.ru
Russian info page: http://www.marigostra.ru/



Подробная информация о списке рассылки Homeros