[sisyphus] temporary root privileges from local process

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Чт Май 18 18:52:31 MSD 2006


On Thu, May 18, 2006 at 05:41:52PM +0300, Vadym Kononenko wrote:
> четвер 18 травень 2006 15:17, Dmitry V. Levin написав:
> > int main()
> >
> > > {
> > >     if (geteuid() != 0) exit(1);
> > >
> > >     setuid(0);
> > >
> > >     return system("/sbin/service bluetooth reload");
> > > }
> >
> > Это instant root, т.е. запускающий эту привилегированную программу
> > пользователь может не напрягаясь получить права setuid(0).
> 
> Я так понимаю, это из-за запуска шелла с рутовыми правами? Тогда следующий 
> вариант должен это исправлять:
>     return execl("/sbin/service" , "service", "bluetooth", "reload", NULL);
> ?

/sbin/service - это shell-скрипт.
Как минимум вам нужно использовать execle.


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20060518/d9da970c/attachment-0003.bin>


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