
Prueba de concepto de exploit para CVE-2026-31431, una vulnerabilidad de corrupción de memoria AF_ALG en el kernel de Linux. Utiliza splice para parchear /usr/bin/su en la caché de páginas, permitiendo la escalada a root sin contraseña.
CopyFail es un exploit de prueba de concepto para CVE-2026-31431, que apunta a una vulnerabilidad de corrupción de memoria en la API de criptografía del kernel de Linux (AF_ALG). El exploit aprovecha la llamada al sistema splice para realizar una modificación no autorizada de la caché de páginas del binario /usr/bin/su, lo que permite una escalada a root sin contraseña.
La vulnerabilidad reside en el manejo por parte del kernel de Linux de las transferencias de datos de copia cero entre sockets AF_ALG y otros descriptores de archivo mediante splice. Debido a una sincronización o verificación de límites inadecuada en la implementación de aead, los datos procesados por el motor criptográfico pueden escribirse de vuelta en la caché de páginas del archivo de origen.
AF_ALG y utiliza sendmsg para poner en cola una carga útil maliciosa en los búferes internos del socket.splice para transferir datos del binario /usr/bin/su al socket AF_ALG, la vulnerabilidad provoca que el contenido del búfer del socket sobrescriba la caché de páginas del binario en memoria.su con una carga útil ELF mínima que genera un shell root. Dado que la caché de páginas se modifica, las ejecuciones posteriores de su ejecutan el código del atacante en lugar del binario original.RawSyscall para todas las interacciones con el kernel.AF_ALG/splice.fmt ni os).Compila el exploit para la arquitectura actual:
go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
Ejecuta el binario compilado:
./CopyFail
Tras una ejecución exitosa, el binario su se modificará en memoria y se ejecutará, otorgando un shell root.
La siguiente demostración muestra el exploit compilándose y ejecutándose en una instalación estándar de Kali Linux.
# 1. Verificar el usuario no privilegiado actual
kali@kali:~$ whoami
kali
# 2. Compilar el exploit
kali@kali:~$ go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
# 3. Ejecutar el exploit CopyFail
kali@kali:~$ ./CopyFail
[+] Triggering AF_ALG memory corruption...
[+] Patching /usr/bin/su in page-cache...
[+] Executing patched binary...
# 4. Éxito: Escalado a shell root
root@kali:/home/kali# id
uid=0(root) gid=0(root) groups=0(root)
root@kali:/home/kali# whoami
root
Para mitigar esta vulnerabilidad, se recomiendan los siguientes pasos:
af_alg y relacionados:
modprobe -r af_alg
auditd) para supervisar llamadas splice sospechosas dirigidas a binarios sensibles del sistema.⚠️ Advertencia: Esta herramienta es únicamente para investigación de seguridad autorizada y fines educativos. La modificación de la caché de páginas es una operación volátil y puede causar inestabilidad en el sistema. El autor no asume ninguna responsabilidad por el mal uso.
CVE-2026-31431 ("Copy Fail") fue descubierto y divulgado por el equipo de investigación de Theori.
Este proyecto está licenciado bajo la MIT LICENSE.