
Prueba de concepto del exploit para CVE-2026-31431, una vulnerabilidad de corrupción de la caché de páginas del kernel de Linux que permite la escalada local de privilegios mediante algif_aead. Incluye exploit.py y orientación de mitigación.
Una prueba de concepto profesional para la vulnerabilidad CVE-2026-31431, una falla crítica en el manejo de la caché de páginas de algif_aead / authencesn del kernel de Linux.
La vulnerabilidad CVE-2026-31431, conocida coloquialmente como "Copy Fail", implica un error de escritura temporal en la caché de páginas divulgado el 29 de abril de 2026. Permite que un usuario local sin privilegios corrompa la vista de la caché de páginas de archivos críticos del sistema como /etc/passwd o /usr/bin/su sin modificar el archivo en disco, lo que habilita la Escalada de Privilegios Local (LPE). [1]
El componente algif_aead realiza operaciones AEAD (Cifrado Autenticado con Datos Asociados) en el lugar. Cuando los datos de origen se alimentan mediante splice() desde un archivo regular, la lista dispersa de destino hace referencia a las páginas de la caché de páginas del archivo. El algoritmo authencesn(hmac(sha256), cbc(aes)) realiza una escritura "temporal" de 4 bytes del campo seqno_lo del AAD en el destino, corrompiendo directamente la copia de la caché de páginas. [1]
| Distribución | Estado |
|---|---|
| Ubuntu 24.04 LTS | Confirmada vulnerable |
Nota: Cualquier kernel que incluya el commit
72548b093ee3(que data de 2017) sin la reversión ascendente podría verse afectado.
| Archivo | Descripción |
|---|---|
exploit.py | Una implementación compacta de la primitiva LPE dirigida a binarios del sistema. |
Para obtener un shell de root usando el script de exploit proporcionado:
python3 exploit.py
El script automatiza la corrupción de la caché de páginas de /usr/bin/su o /etc/passwd para elevar privilegios. Se recomienda a los usuarios revisar minuciosamente el código antes de ejecutarlo, ya que interactúa con componentes sensibles del sistema.
La primitiva central aprovecha la siguiente secuencia:
sendmsg con AAD de 8 bytes y controles AEAD específicos.splice() en el descriptor de archivo objetivo hacia el socket de operación.recv(), que ejecuta la escritura temporal antes de devolver un error.Hasta que se implemente un kernel parcheado, el módulo algif_aead debe deshabilitarse:
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null
ADVERTENCIA: Esta herramienta es solo para fines educativos y de evaluación de seguridad autorizada. El uso no autorizado contra sistemas que no posees o para los que no tienes permiso explícito de prueba es ilegal y poco ético. Los autores no asumen ninguna responsabilidad por el mal uso.
[1] Blog de Xint: Copy Fail - Divulgación de distribuciones Linux
© 2026 BEN
| Amazon Linux 2023 | Confirmada vulnerable |
| RHEL 14.3 | Confirmada vulnerable |
| SUSE 16 | Confirmada vulnerable |