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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.