
CVE-2026-31431 - Guía de Remediación y Medidas de Protección
Este repositorio documenta la vulnerabilidad CVE-2026-31431, apodada Copy Fail, y propone un procedimiento de remediación defensiva para sistemas Linux potencialmente expuestos.
⚠️ Este repositorio está estrictamente orientado a la defensa, auditoría autorizada, endurecimiento y remediación.
No proporciona un procedimiento de explotación y no debe utilizarse para comprometer sistemas de terceros.
CVE-2026-31431 / Copy Fail es una vulnerabilidad de elevación local de privilegios en el kernel de Linux.
Afecta al subsistema criptográfico del kernel, más concretamente a la interfaz de usuario AF_ALG y al módulo algif_aead. La falla está relacionada con una optimización introducida en 2017 en la ruta AEAD del kernel de Linux. En determinadas condiciones, un usuario local no privilegiado puede provocar una escritura controlada en el de un archivo legible, especialmente un binario setuid, lo que puede conducir a una elevación de privilegios hacia .
rootLa vulnerabilidad se considera High con una puntuación CVSS v3.1 de 7.8.
| Elemento | Detalle |
|---|---|
| CVE | CVE-2026-31431 |
| Nombre público | Copy Fail |
| Tipo | Local Privilege Escalation, LPE |
| Componente | Linux kernel crypto subsystem |
| Módulo afectado | algif_aead |
| Interfaz | AF_ALG |
| Mecanismo implicado | AEAD, authencesn, splice(), page cache |
| Puntuación CVSS v3.1 | 7.8 High |
| Privilegios requeridos | Cuenta local no privilegiada |
| Interacción del usuario | Ninguna |
| Impacto | Confidencialidad, integridad y disponibilidad altas |
Las fuentes públicas indican que las distribuciones Linux que incorporan un kernel derivado de una rama vulnerable desde la optimización de 2017 pueden estar expuestas.
Ejemplos de plataformas mencionadas en las publicaciones públicas:
| Distribución | Ejemplo de versión de kernel probada públicamente |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
| Debian | Según versión del kernel y estado de seguridad |
| AlmaLinux / Rocky Linux / Oracle Linux | Según versión del kernel y backports del proveedor |
El estado exacto depende de la versión del kernel, el proveedor, los backports de seguridad y los parches ya aplicados.
Esta vulnerabilidad es especialmente peligrosa en entornos donde usuarios o cargas de trabajo no confiables tienen acceso a un shell local o a un entorno de ejecución compartido.
Entornos a priorizar:
Riesgo principal:
root;uname -a
uname -r
lsmod | grep algif_aead || true
sudo lsof -nP | grep AF_ALG || true
dpkg -l | grep -E '^ii\\s+linux-image|^ii\\s+linux-modules'
rpm -qa | grep -E '^kernel|^kernel-core'
rpm -qa | grep -E '^kernel'
Opción prioritaria: aplicar el parche de kernel del proveedor La remediación correcta consiste en instalar un kernel parcheado proporcionado por la distribución y luego reiniciar con ese kernel.
sudo apt update
sudo apt full-upgrade -y
sudo reboot
sudo dnf update -y kernel kernel-core kernel-modules
sudo reboot
sudo zypper refresh
sudo zypper patch
sudo reboot
# Después del reinicio:
uname -r
Si aún no hay un kernel parcheado disponible o si un reinicio inmediato es imposible, aplicar una mitigación temporal.
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null || true
sudo rmmod algif_aead 2>/dev/null || true
sudo update-initramfs -u
sudo dracut -f
sudo mkinitrd
sudo reboot
sudo modprobe algif_aead
echo $?
En algunos kernels, el módulo puede estar compilado directamente en el kernel y no ser cargable/descargable como módulo.
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
CONFIG_CRYPTO_USER_API_AEAD=m
El componente es un módulo. La mitigación mediante /etc/modprobe.d/ es aplicable.
CONFIG_CRYPTO_USER_API_AEAD=y
El componente está integrado en el kernel. La mitigación mediante modprobe.d no es suficiente.
En este caso, utilizar preferiblemente:
Algunas fuentes mencionan la siguiente opción de kernel como posible solución alternativa:
initcall_blacklist=algif_aead_init
Debe probarse obligatoriamente fuera de producción antes de su generalización. Esta opción puede variar según el kernel, la distribución y la configuración de arranque.
Para Docker, Podman, Kubernetes y CI/CD, es necesario reducir la posibilidad de que cargas de trabajo no confiables abran sockets AF_ALG.
sudo lsof -nP | grep AF_ALG || true
lsmod | grep algif_aead || true
find / -perm -4000 -type f 2>/dev/null
sudo ausearch -f /usr/bin/su 2>/dev/null || true
sudo auditctl -w /usr/bin/su -p x -k su_exec_monitoring
sudo ausearch -k su_exec_monitoring
last -a
lastlog
getent passwd
sudo find /etc/cron* -type f -ls 2>/dev/null
sudo find /root /home -name authorized_keys -type f -ls 2>/dev/null
sudo journalctl --since "48 hours ago"
#!/usr/bin/env bash
set -euo pipefail
echo "[+] CVE-2026-31431 - mitigación temporal algif_aead"
if [[ $EUID -ne 0 ]]; then
echo "[-] Este script debe ejecutarse como root."
exit 1
fi
echo "[+] Versión del kernel activo: $(uname -r)"
echo "[+] Desactivación persistente de la carga de algif_aead"
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
echo "[+] Intento de descarga del módulo"
modprobe -r algif_aead 2>/dev/null || true
rmmod algif_aead 2>/dev/null || true
if command -v update-initramfs >/dev/null 2>&1; then
echo "[+] Actualización de initramfs Debian/Ubuntu"
update-initramfs -u
elif command -v dracut >/dev/null 2>&1; then
echo "[+] Actualización de initramfs mediante dracut"
dracut -f
elif command -v mkinitrd >/dev/null 2>&1; then
echo "[+] Actualización de initramfs mediante mkinitrd"
mkinitrd
else
echo "[!] No se detectó ninguna herramienta initramfs conocida. Verifique manualmente."
fi
echo "[+] Verificación"
lsmod | grep algif_aead && echo "[!] Módulo aún cargado" || echo "[OK] Módulo no cargado"
echo "[+] Reinicio recomendado."
No reemplaza:
la instalación de un kernel parcheado;
el reinicio con el kernel parcheado;
la validación del estado del proveedor;
el análisis posterior al incidente si se sospecha un compromiso.
También puede afectar a ciertos software configurados explícitamente para utilizar la interfaz criptográfica AF_ALG.
Theori / Xint Code — Copy Fail Technical Write-up https://xint.io/blog/copy-fail-linux-distributions Repositorio GitHub Theori PoC https://github.com/theori-io/copy-fail-CVE-2026-31431 NVD — CVE-2026-31431 https://nvd.nist.gov/vuln/detail/CVE-2026-31431 CERT-EU — Security Advisory 2026-005 https://cert.europa.eu/publications/security-advisories/2026-005/ Ubuntu Security — CVE-2026-31431 https://ubuntu.com/security/CVE-2026-31431 Debian Security Tracker — CVE-2026-31431 https://security-tracker.debian.org/tracker/CVE-2026-31431 SUSE CVE Tracker — CVE-2026-31431 https://www.suse.com/security/cve/CVE-2026-31431.html Tenable FAQ — Copy Fail https://www.tenable.com/blog/copy-fail-cve-2026-31431-frequently-asked-questions-about-linux-kernel-privilege-escalation
Este repositorio se proporciona únicamente con fines:
Cualquier uso ofensivo no autorizado es ilegal y contrario al objetivo de este repositorio.