LINUX.ORG.RU

Небезопасная установка LD_LIBRARY_PATH в скриптах-обертках


0

0
Stefan Fritsch из команды безопасности Debian обнаружил, что многие скрипты-обертки (например, liferea) устанавливают переменную окружения LD_LIBRARY_PATH небезопасным образом:

LD_LIBRARY_PATH=/usr/lib/xulrunner:$LD_ LIBRARY_PATH

Проблема заключается в том, что, если исходное значение LD_LIBRARY_PATH было пустым, то окончательное значение "/usr/lib/xulrunner:" интерпретируется как "/usr/lib/xulrunner, текущая директория, а уже затем /lib и /usr/lib".

Это не новая уязвимость, а CVE-2005-4790 и CVE-2005-4791, которые были первоначально (неправильно) опубликованы как ошибки, касающиеся только SuSE.

Безопасный способ установки LD_LIBRARY_PATH в скриптах:

LD_LIBRARY_PATH=/usr/lib/xulrunner${LD_ LIBRARY_PATH:+:$LD_LIBRARY_PATH}

>>> Подробности

Почувствуй?
anonymous
()
Так вот почему дебианщики нападают на сусю, им завидно что у нас уже все давно поправили, а у них дыра.
HighwayStar ★★★★★
()
Ответ на: комментарий от HighwayStar
Зато других дыр такого типа уже не будет - дырявые пакеты скоро будет автоматически блокировать lintian. См. http://bugs.debian.org/451559
AEP ★★★★★
() автор топика
Вот до чего доводит использование бинарных свалок - требуются годы, чтобы даже эксперты (!) прочухали наличие ужасающих дырок.
Gharik
()
И? Теперь, видимо, за состоянием своих переменных следить
уже не модно? Или дебианщики не асилили?
GlorySmith
()
А в чём уязвимость заключается? Я и так я могу LD_LIBRARY_PATH как мне захочется выставить. LD_ LIBRARY_PATH=`pwd` liferea
anonymous
()
Ответ на: комментарий от anonymous
> А в чём уязвимость заключается?

+1.

isden ★★★★★
()
Найдена новая уязвимоть: пользователь может установить переменную LD_LIBRARY_PATH

Способ решения: запретить доступ пользователю к системе

anonymous
()
Ответ на: комментарий от Gharik
> Вот до чего доводит использование бинарных свалок - требуются годы, чтобы даже эксперты (!) прочухали наличие ужасающих дырок.

Гентушный отморозок компиляторщик Gharik обгадил все лужи. :(

anonymous
()
Так, может, надо интерпретировать ":" как "ничего", а ":." как "текущий каталог"? И не будет такой проблемы?..

Что мешает?

lodin ★★★★
()
А что, у кого-то LD_LIBRARY_PATH пустая? Проблема, как это часто бывает, находится между рулем и сиденьем. Ну а Гарику только дай повод :)
Demon37 ★★★★
()
класс ;) выходит, я как раз сегодня обернул nautilus небезопасным образом. Небезопасным я бы тут назвал парсинг LD_LIBRARY_PATH линкером. Плюс предложенный "безопасный способ" выглядит просто дико, пусть даже он и правильный.
erDiZz
()
Ответ на: комментарий от Demon37
> А что, у кого-то LD_LIBRARY_PATH пустая?

У меня, а что?

> Проблема, как это часто бывает, находится между рулем и сиденьем

А нахрена мне её выставлять?

wRAR
()
Если в голове у админа - решето, то Linux- не решение. Решение - руки оторвать, чтобы не мучался.
mick_vav
()
Ответ на: комментарий от anonymous
> Гентушный отморозок компиляторщик Gharik обгадил все лужи. :(

А ты как хотел? Гента тем и сильна, что компилируется постоянно и дырки таким образом находятся с большей вероятностью + ломать замучаешься, т.к. неизвестно что там стоит и через какое место работает.

Клюнут на "апаче 2.0" скрипткидисы, херакс - а там netcat запросы обслуживает.

Gharik
()
Ответ на: комментарий от Gharik
> А ты как хотел? Гента тем и сильна, что компилируется постоянно

И бывает что вылетает при компиляции.

> и дырки таким образом находятся с большей вероятностью

Как связана постоянная компиляция, источник дополнительных проблем с нахождением багов? Ты сколько багов уже нашел компиляцией? :) Гента нстабильна еще и по причине отсутсвия обновлений безопасности, коорые штопают дыру, но не меняют версию и не меняют функционал. В генте функционал программ постоянно меняется и если ты не уследил - что-нибудь обязательно отвалистя после обновления. Лично мне использование деба и убунты никак не мешает в целевом поиске багов и в устранении тех багов, на которые налетел случайно(сегфолт). А гентушники-мантейнеры утонули в проблемах со сборкой так что на полезне дела, на исправление ошибок в коде у них уже времени не остается. Сходи на багзиллу и убедись. ;)

> + ломать замучаешься, т.к. неизвестно что там стоит

Бинарный дистр с ядром 2.6.12+ (ASLR) и свежим glibc (защита от переполнения heap) тоже замучаешься ломать. А если там еще SELinux...

> и через какое место работает.

Через задницу? :)

anonymous
()
Спасибо! Познавательно, будем знать!
php-coder ★★★★★
()
Опять лечат не больного, а болезнь. Проблема на самом деле не в переменной, и в том кто и как её устанавливает, а в динамическом связывании во время исполнения :)
robot12 ★★★★★
()
Ответ на: комментарий от anonymous
> Линакс - решето

Прийдётся откатываться на вантуз.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.