
Scripts Bash para detectar y mitigar CVE-2026-31431 (Copy Fail), escalada de privilegios local en el kernel de Linux mediante socket AF_ALG, incluyendo la desactivación de módulos y la configuración de seccomp.
Este proyecto proporciona un conjunto de scripts Bash para detectar y mitigar la vulnerabilidad de escalada de privilegios local CVE-2026-31431 (también conocida como "Copy Fail") en el kernel de Linux.
a664bf3d603d y parches posterioresEsta vulnerabilidad existe en la implementación del socket AF_ALG del kernel de Linux; un atacante podría lograr una escalada de privilegios local mediante la construcción de una operación de enlace authencesn específica.
| Archivo | Propósito | Permisos de ejecución |
|---|---|---|
check_cve_2026_31431.sh | Detección de impacto de la vulnerabilidad y evaluación de riesgo | Usuario normal o root |
cve-2026-31431-mitigate.sh | Ejecutar medidas de mitigación (deshabilitar módulos, generar configuración seccomp) | Requiere root |
bash check_cve_2026_31431.sh
El script verificará los siguientes elementos uno por uno:
CONFIG_CRYPTO_USER_API_AEADalgif_aead / af_algauthencesn (para determinar si ya está mitigado)El resultado final muestra el nivel de riesgo general: UNKNOWN / LOW / MEDIUM / HIGH.
Nota: El script de mitigación requiere permisos de root.
sudo bash cve-2026-31431-mitigate.sh
Las operaciones de mitigación incluyen:
/etc/modprobe.d/disable-algif-aead.conf para prohibir la carga del módulo algif_aeadalgif_aead ya está cargado, intentar descargarlo (rmmod)depmod -a para actualizar las dependencias de módulossudo bash cve-2026-31431-mitigate.sh --verify-only # Solo verificar, sin escribir configuración
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # Generar adicionalmente configuración seccomp para Docker
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # Especificar la ruta de salida de seccomp
El estándar de oro para determinar si la mitigación es efectiva: fallo del enlace authencesn.
El "Elemento de verificación 5: Verificación de mitigación (enlace authencesn)" del script de detección intentará ejecutar:
import socket
s = socket.socket(38, 5, 0) # AF_ALG
s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
CONFIG_CRYPTO_USER_API_AEAD=y (compilado estáticamente en el kernel), el método de deshabilitación de módulos generalmente no es efectivo; solo se puede actualizar el kernel.algif_aead está en uso, rmmod puede fallar al descargarlo; se recomienda verificar después de reiniciar en una ventana de mantenimiento.socket(AF_ALG).a664bf3d603d y parches posteriores.Los scripts han sido probados en los siguientes entornos:
grep, sed, lsmod, modprobe, rmmod, depmod)python3 o python (para la verificación del socket AF_ALG)Licencia MIT
Los scripts proporcionados en este proyecto son solo para detección de seguridad y mitigación temporal, no pueden reemplazar la actualización oficial del parche del kernel. Antes de usar estos scripts, comprenda completamente sus operaciones (como deshabilitar módulos del kernel) y verifíquelos primero en un entorno de pruebas. El autor no se hace responsable de ninguna pérdida directa o indirecta causada por el uso de esta herramienta.