
Copy Fail (CVE-2026-31431) es una falla lógica en el módulo algif_aead del kernel de Linux, parte de la API criptográfica de espacio de usuario AF_ALG. Fue divulgada el 29 de abril de 2026 por Theori / Xint Code.
Un script de detección de solo lectura para la vulnerabilidad de escalada de privilegios locales Copy Fail en el kernel de Linux.
Sin código de exploit. No se abre ningún socket AF_ALG. No se escriben archivos fuera de/etc/modprobe.d(solo cuando aplicas la mitigación manualmente).
Copy Fail (CVE-2026-31431) es una falla lógica en el módulo algif_aead del kernel de Linux, parte de la API criptográfica de espacio de usuario AF_ALG. Fue divulgada el 29 de abril de 2026 por Theori / Xint Code.
Un script de Python de 732 bytes puede otorgar a un usuario local sin privilegios acceso root completo en prácticamente todas las principales distribuciones de Linux compiladas desde 2017, sin condiciones de carrera, offsets del kernel ni payloads compilados.
| Propiedad | Detalle |
|---|
| CVE | CVE-2026-31431 |
| CVSS | 7.8 ALTA |
| Tipo | Escalada de Privilegios Local (LPE) |
| Kernels afectados | 4.14 – 6.18.21, 6.19.0 – 6.19.11 |
| Causa raíz | Optimización in-place de algif_aead (commit 72548b093ee3, 2017) |
| Corrección upstream | Revertir mediante el commit a664bf3d603d |
| Fiabilidad del exploit | Determinista — no requiere condición de carrera |
modprobe.d, parámetro de línea de comandos del kernel initcall_blacklistkmod según USN-8226-1Nota sobre Ubuntu / Debian: Ubuntu no incrementa la versión del kernel upstream al hacer backport de parches de seguridad. Por lo tanto, el script verifica la versión del paquete
kmod(>= 31+20240202-2ubuntu7.2según USN-8226-1) en lugar de depender únicamente de la cadena de versión del kernel.
| Distribución | Método de comprobación |
|---|---|
| Ubuntu / Linux Mint | Versión del paquete kmod (USN-8226-1) |
| Debian | Versión del paquete kmod + rastreador de seguridad |
| Parrot OS | Versión del paquete kmod (Debian rolling) |
| RHEL / CentOS / AlmaLinux / Rocky | dnf updateinfo + parámetro de línea de comandos initcall_blacklist |
| Fedora | dnf updateinfo |
| Amazon Linux | dnf check-update --security |
| SUSE / openSUSE | zypper lp |
| Arch Linux | pacman -Syu linux |
# Descargar
curl -O https://raw.githubusercontent.com/kw-soft/copyfail/main/copyfail.sh
# Hacer ejecutable
chmod +x copyfail.sh
# Ejecutar (se recomienda root para visibilidad completa del módulo)
sudo ./copyfail.sh
============================================
CVE-2026-31431 'Copy Fail' — Detección segura
============================================
[*] Kernel: 6.8.0-71-generic
[!] El kernel 6.8.0-71-generic está en el rango vulnerable upstream (4.14 – 6.19.11)
[~] La comprobación de backport de la distribución continúa — el número de versión por sí solo no es concluyente
[*] Estado del módulo algif_aead:
[!] algif_aead está CARGADO — la superficie de ataque está activa
[*] Estado del parche de la distribución:
Distribución : Ubuntu 24.04
kmod instalado : 31+20240202-2ubuntu6
kmod requerido : >= 31+20240202-2ubuntu7.2
[!] kmod 31+20240202-2ubuntu6 < 31+20240202-2ubuntu7.2 — mitigación NO aplicada
============================================
RESULTADO
============================================
[!] VULNERABLE — el kernel está afectado y algif_aead está activo
============================================
CVE-2026-31431 'Copy Fail' — Detección segura
============================================
[*] Kernel: 6.8.0-71-generic
[!] El kernel 6.8.0-71-generic está en el rango vulnerable upstream (4.14 – 6.19.11)
[~] La comprobación de backport de la distribución continúa — el número de versión por sí solo no es concluyente
[*] Estado del módulo algif_aead:
[✓] algif_aead NO está cargado
[✓] Lista negra de modprobe activa: /etc/modprobe.d/disable-algif_aead.conf
[*] Estado del parche de la distribución:
Distribución : Ubuntu 24.04
kmod instalado : 31+20240202-2ubuntu7.2
kmod requerido : >= 31+20240202-2ubuntu7.2
[✓] kmod >= 31+20240202-2ubuntu7.2 — mitigación USN-8226-1 presente
============================================
RESULTADO
============================================
[✓] MITIGADO — algif_aead está bloqueado
[~] Aplica un kernel parcheado cuando esté disponible para resolver el problema por completo
sudo apt update && sudo apt upgrade && sudo reboot
Esto instala el paquete kmod parcheado (USN-8226-1) que añade una regla de modprobe.d que bloquea algif_aead.
Si no es posible un reinicio inmediato:
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf
sudo update-initramfs -u
sudo rmmod algif_aead 2>/dev/null || echo "Módulo en uso — se requiere reinicio"
⚠️ En los kernels de la familia RHEL,
algif_aeadestá integrado en el kernel (CONFIG_CRYPTO_USER_API_AEAD=y).
Las reglas demodprobe.dno tienen efecto. Usa el parámetro de grub en su lugar:
sudo grubby --update-kernel=ALL --args='initcall_blacklist=algif_aead_init'
sudo reboot
sudo pacman -Syu linux && sudo reboot
La mitigación no afecta a ninguno de los siguientes:
dm-crypt / LUKSSolo las aplicaciones configuradas explícitamente para usar el motor afalg o que enlazan sockets AEAD de AF_ALG directamente pueden verse afectadas; esto es poco común en implementaciones estándar.
Hetzner no aplica actualizaciones del sistema operativo automáticamente. Ubuntu incluye unattended-upgrades preinstalado, pero debe estar habilitado y configurado.
# Comprobar si las actualizaciones de seguridad automáticas están activas
cat /etc/apt/apt.conf.d/20auto-upgrades
# Ver el historial de actualizaciones
grep "^Start-Date\|^Commandline" /var/log/apt/history.log | tail -30
# Comprobar si la mitigación de kmod se aplicó automáticamente
grep "kmod\|algif" /var/log/apt/history.log
# Ver la última ejecución de unattended-upgrades
tail -30 /var/log/unattended-upgrades/unattended-upgrades.log
Nota: Incluso con
unattended-upgradeshabilitado, los reinicios automáticos están desactivados por defecto.
Un nuevo kernel solo se activa después de unrebootmanual.
Este script está diseñado para usarse en sistemas que posees o para los que estás autorizado a realizar pruebas.
Realiza comprobaciones de solo lectura y no explota la vulnerabilidad de ninguna manera.