¿Es la carrera de enlaces simbólicos una vulnerabilidad muy común en los sistemas UNIX?

8

Por lo que sé, cuando estoy creando un nuevo archivo o directorio en un directorio que pueden escribir varios usuarios (y, por lo tanto, un adversario puede haber creado un enlace simbólico allí), la única forma de protegerme de la carrera de enlaces simbólicos está creando un archivo con suficiente nombre aleatorio.

Bueno, algunas aplicaciones podrían haber comprobado si dicho archivo ya existe, pero no estoy al tanto de ningún mecanismo que sea tanto atómico como capaz de detectar enlaces simbólicos.

Entonces, cuando hay muchos nombres de archivos no aleatorios (o incluso reutilizados) en / tmp desde varias aplicaciones, significa que todas estas aplicaciones son vulnerables a la carrera de enlaces simbólicos, ¿no es así? (Bueno, no se puede decidir simplemente si la vulnerabilidad se puede abusar fácilmente, pero por el momento no me importa la posibilidad de explotación).

Espero estar en algún lugar equivocado.

    
pregunta v6ak 05.03.2015 - 11:02
fuente

1 respuesta

5

Entonces, esto debería responder a la pregunta "¿es común el enlace simbólico?"

Una en la base de datos MITRE muestra que hay 4 CVEs para una vulnerabilidad de condición Linux Symlink Race. A modo de comparación, hay 2749 CVEs de Linux conocidos por MITRE.

Linux en el nivel del kernel tiene protecciones contra esto. Kees Cook creó un parche para Linux para evitar este problema:

  

La solución es permitir que solo se sigan los enlaces simbólicos cuando se encuentra fuera de un sticky   directorio de escritura mundial, o cuando el uid del enlace simbólico y el seguidor coinciden,   o cuando el propietario del directorio coincide con el propietario del enlace simbólico.

    
respondido por el Ohnana 17.03.2015 - 18:17
fuente

Lea otras preguntas en las etiquetas