
Ejemplo de CVE-2022-46689, también conocido como MacDirtyCow.
Ejemplo de CVE-2022-46689 también conocido como MacDirtyCow.
MacDirtyCow es una vulnerabilidad de escalada de privilegios en macOS, similar a la vulnerabilidad Dirty COW en Linux. La vulnerabilidad reside en el mecanismo de copia en escritura (COW) utilizado por el kernel XNU de macOS. La vulnerabilidad permite a un atacante modificar archivos de solo lectura propiedad de root, lo que podría llevar a que un atacante obtenga privilegios de root en el sistema afectado.
La vulnerabilidad es causada por una condición de carrera en la forma en que el kernel XNU de macOS maneja las operaciones de copia en escritura (COW) en las páginas de memoria. Cuando una página de memoria está marcada como de solo lectura, pero también como copia en escritura, el kernel crea una nueva copia de la página cuando se realiza una operación de escritura en ella. Sin embargo, existe una pequeña ventana de tiempo entre la verificación de la página de solo lectura y la creación de la nueva copia en la que un atacante podría modificar la página en memoria, evitando efectivamente la restricción de solo lectura.
Este código (poc.c) abre un archivo especificado como argumento de línea de comandos y lo mapea en memoria usando mmap(). Luego crea una copia del archivo y modifica la copia mapeada en memoria del archivo llenándola con el carácter 'A'. Finalmente, el archivo original se sobrescribe con la copia modificada del archivo.