El artículo de Wikipedia continúa:
Esto coloca la base de pila en un área de 8 MB de ancho que contiene 524,288
Posibles posiciones; y la base mmap en un área de 1 MB de ancho que contiene
256 posiciones posibles.
Este último es demasiado pequeño para ser efectivo, y un atacante solo necesita sondear 256 direcciones en un segmento para encontrar el puntero de dirección mmap()
.
Lo que el artículo no menciona es el uso limitado de ASLR en Linux. Tradicionalmente, el kernel 2.6 solo usaba ASLR para procesos (de red) en áreas de memoria específicas (cuando se compilaba PIE) mientras se cargaba el VDSO en una dirección fija. Tal medida solo es efectiva si todas las direcciones son aleatorias. Los núcleos más nuevos tienen mejor soporte para la asignación aleatoria de direcciones. Tenga en cuenta que varias versiones de Windows hicieron exactamente lo mismo.