
Scripts de mitigación permanente para CVE-2026-31431 (Copy Fail) en Ubuntu 24.04, que bloquean el módulo vulnerable del kernel algif_aead y actualizan initramfs para que persista tras los reinicios.
Este repositorio contiene scripts diseñados para neutralizar la vulnerabilidad crítica CVE-2026-31431, apodada "Copy Fail", en sistemas Ubuntu.
[!IMPORTANT] Compatibilidad: Estos scripts están adaptados y probados en Ubuntu Server 24.04 LTS. Aunque la lógica es similar para otras distribuciones, no han sido probados en Debian ni en otras variantes de Linux.
Antes de aplicar el parche, descargue el script oficial de detección (desarrollado por rootsecdev) para validar el estado actual de su sistema:
# Descargar el script de detección
wget https://raw.githubusercontent.com/rootsecdev/cve_2026_31431/main/test_cve_2026_31431.py
# Asegúrese de tener python3 instalado
python3 --version
La vulnerabilidad CVE-2026-31431 ($CVSS\ 7.8$) afecta al subsistema criptográfico del kernel de Linux (módulo ).
algif_aeadUn usuario local puede corromper la Page Cache del sistema explotando una falla en la optimización "in-place" de la función splice(). Esto permite a un atacante forzar al kernel a escribir datos arbitrarios (números de secuencia) en páginas de memoria de archivos que deberían ser de solo lectura (como binarios SUID o archivos sensibles del sistema).
modprobe -r no es suficienteEl kernel de Linux utiliza un mecanismo llamado auto-carga. Si un proceso o script (como el detector) solicita un socket de tipo AF_ALG, el kernel recarga automáticamente el módulo incluso si fue eliminado manualmente. El método utilizado en este parche ("Hard Block") impide físicamente que el binario del módulo sea cargado por el kernel.
Ejecute el probador para confirmar si su kernel actual está expuesto:
python3 test_cve_2026_31431.py
Si el script muestra [!] VULNERABLE, continúe con el siguiente paso.
El script patch-CVE-2026-31431.sh neutraliza el vector de ataque de forma permanente. Crea un archivo de configuración en /etc/modprobe.d/ y actualiza el initramfs para garantizar que el bloqueo persista después de un reinicio.
chmod +x patch-CVE-2026-31431.sh
sudo ./patch-CVE-2026-31431.sh
Ejecute nuevamente el script de detección. Ahora debería ver un mensaje indicando que los requisitos previos no se cumplen:
[+] Precondition not met ('authencesn(...) cannot be instantiated).
Esto confirma que el módulo está neutralizado con éxito.
Una vez que Ubuntu publique una corrección oficial mediante una actualización del kernel (consulte las notas de apt upgrade para CVE-2026-31431), debería restaurar las capacidades criptográficas nativas:
chmod +x unpatch-CVE-2026-31431.sh
sudo ./unpatch-CVE-2026-31431.sh
La protección se basa en la siguiente directiva dentro de /etc/modprobe.d/cve-2026-31431-mitigation.conf:
blacklist algif_aead
install algif_aead /bin/true
El comando install redirige el intento del kernel de cargar el módulo a /bin/true, que devuelve un código de salida de "éxito" sin ejecutar ningún código vulnerable.