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 >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


Responder a