[devel] создание Стабильного бранча и Национальной ОС
Vladimir Lettiev
thecrux на gmail.com
Ср Окт 13 16:18:46 UTC 2010
On Wed, Oct 13, 2010 at 02:00:23PM +0300, Victor Forsiuk wrote:
> > Perldoc _может_ работать от root, просто потребуется указать ключ -t
> > ( можно даже прописать alias perldoc='perldoc -t' )
> >
>
> А теперь поместите себя, пожалуйста, в шкуру пользователя дистрибутива ALT.
> Даже суперправильного, который читает маны (oops, от такой привычки ему
> нужно отвыкать :). Он запускает perldoc, получает страшный матюк с
> нехорошими словами Error и Insecure. Логинится юзером, запускает *perldoc
> perldoc*. Вы видите в описании ключа -t текст, подсказывающий человеку, что
> это решение для запуска от root. Скорее он дойдет до секции SECURITY и
> поймет, что всё плохо: perldoc ... is known to have security issues.
perldoc при запуске от root скидывает привилегии до nobody, при этом
автоматически включается tainted режим, что запрещает использовать в
вызовах system(), exec() или `` непроверенные данные, полученные извне.
Именно из-за tainted режима происходит ошибка вызова perldoc, поскольку
где-то в недрах ToMan.pm происходит запуск шела с коммандой, которая сформирована
из tainted переменных. Об этом собственно и говорит примечание в документации
по perldoc. С помощью ключа -t можно обойти использование модуля ToMan.pm
и получить вывод документации.
На самом деле это вопрос не праздный, почему в документации perldoc
нам прямым текстом сообщается:
perldoc does not run properly tainted, and is known to have security issues
Где информация об известных уязвимостях в perldoc? Если они есть, то почему
до сих пор не исправлены?
Насколько я успел раскопать, перед релизом perl 5.6.0 в 2000 году Tom Christiansen
провёл аудит кода perldoc и сделал множество исправлений безопасности, в том
числе реализовал сбрасывание привелегий для случая запуска от root. Также ввёл
опцию -U для ССЗБ (опцию правда позже убрали):
-U Run in insecure mode (superuser only)
Он же и написал то грозное сообщение о проблемах безопасности, предупреждая, что
запуск perldoc от root на модули из непроверенных источников - это опасно.
Если посмотреть в багтрак для perldoc, там действительно были такие проблемы,
например, создание временных файлов в каталоге /tmp/.perldoc, это потом
"исправили" добавив к имени текущий pid процесса... После исправлений
Tom Christiansen никаких проблем с безопасностью вроде бы не регистрировали.
--
Vladimir Lettiev aka crux ✉ theCrux на gmail.com
Подробная информация о списке рассылки Devel