[sisyphus] Re: Q: perl security, CPAN security

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Июн 27 13:53:46 MSD 2005


On Mon, Jun 27, 2005 at 01:03:25PM +0400, Epiphanov Sergei wrote:
> В сообщении от 27 Июнь 2005 11:57 Alexey Tourbin написал:
> > > Сейчас правило для имплицитного включения tain mode выглядит так:
> > > perl.c:    PL_tainting |= (PL_uid && (PL_euid != PL_uid || PL_egid !=
> > > PL_gid));
> > >
> > > Предлагается добавить в условие PL_euid==0 || ...
> >
> > Забыл сказать, что будет такой же workaround, какой сейчас существует.
> Хм, сейчас я могу выбрать, включать или нет этот режим. В Вашем случае 
> волей-неволей придётся ломать голову над каждой инструкцией.

Можно запустить с опцией -t (enable tainting warnings), она "перебивает"
опцию -T (enable tainting checks).  Об этом лучше никому не говорить. :)

> Например, рабочий скрипт вида:
> 
> #!/usr/bin/perl
> foreach $l(@ARGV){
> 	system("/usr/bin/команда '$l'");
> }

Рабочий?  То есть он берёт произвольные аргументы с командной строки и
передаёт их shell'у для выполнения?  Вот смотрите:

$ cat test.pl
#!/usr/bin/perl
foreach $l(@ARGV){
       print "/usr/bin/команда '$l'\n";
}
$ perl test.pl arg
/usr/bin/команда 'arg'
$ perl test.pl arg\'\;rm\ -rf\ \'/
/usr/bin/команда 'arg';rm -rf '/'
$

Квотирование -- это вообще некое неприятное место как в шелле, так и в
перле (отчасти вследствие шелла).

> и притом, что я знаю, что это за 'команда' и что получу в результате, всё 
> равно скрипт придётся обвешивать бог знает чем. Для скриптов, которые я хоть 
> как-то задействую в управлении сервером, я обязательно пишу параметр -T. Вы, 
> когда пишите '/bin/cat "file"', не проверяете file на "вшивость". Хотя 
> знаете, что нетекстовый файл может привести к сбою шрифтов консоли. Так же и 
> я пишу на Perl.

Ох, я не использую /bin/cat, я использую 

$ perl -MConfig -le 'print $Config{pager}'
/usr/bin/less -isR
$
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20050627/7003f2e2/attachment-0003.bin>


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