[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