On Tue, 15 Jan 2002, Carles Pina i Estany wrote:
> Hola,
>
> > > Bueno, pues eso. Me ha quedado lo de comentar que la opci�n "a+" del
> > > fopen es pelin peligrosa, si no se verifica que el fichero a abrir no es
> > > un enlace simb�lico a, por ejemplo a /etc/passwd ( si lo ejecuta como
> > > root puede ser divertido... )
> >
> > Para nada. Este fallito si es de bulto. El kernel no es tonto.
>
> tambien era en el caso que el programa "nuestro" se ejecuto con setuid de
> root
>
> Hay varios exploits que se aprovechan de eso, de no comprobar si el
> fichero que el programa intenta abrir es un enlace simb�lico o no existe
>
> Imagina que nuestro programa se ejecuta como setuid de root y que un
> usuario normal ha hecho un enlace de "prueba.txt" a /etc/passwd...
Claro faltaba esa parte.
> Si lo digo es por algo }:-)
Bueno un programa que vaya a funcionar con setuid es una cosa
suficientemente seria como para atar absolutamente todos los
cabos y no veo que fopen "a+" sea mucho m�s peligroso que
fopen "w" por ejemplo. Si tienes privilegios de root incluso
un fopen "r" resulta peligroso. Bastar�a hacer un
ln -s /etc/shadow .... para leer las claves y copiarlas a
otro sitio para atacarlas o leer algunos logs sumamente interesantes.
Lo mismo puede decirse de unlink, link, exec, y cualquier otra llamada
al sistema que acepte un nombre de fichero.
Si usas dentro de un programa setuid una llamada al sistema a la cual
le pasas un nombre de fichero incontrolado que puede ser alterado por
cualquiera lo tienes crud�simo y en mi opini�n ese es el verdadero fallo
de caso que tu comentas por lo cual un fopen "a+" no a�ade gran cosa.
Creo que dices las cosas a medias y tienes en mente algunas experiencias
que yo no puedo adivinar. La cuesti�n es que cuando se produce una cadena
de errores que permiten un exploit suele ocurrir que nos fijamos en el
�ltimo eslab�n de la cadena como el responsable de todo, pero creo que
estar�s de acuerdo en que hay que retroceder en esa cadena de fallos todo
lo que se pueda porque cada fallo abre varias puertas y arreglando el
�ltimo no se hace gran cosa.
Un saludo
Antonio Castro
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
/\ /\ Ciberdroide Inform�tica (Tienda de Linux)
\\W// <<< http://www.ciberdroide.com >>>
_|0 0|_
+-oOOO--(___o___)--OOOo----------------------------------------------------+
| . . . . U U . . . . Antonio Castro Snurmacher [EMAIL PROTECTED] |
| . . . . . . . . . . |
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>> |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+