
Script de mitigación sin reinicio para el fallo del kernel Copy Fail (CVE-2026-31431). Desactiva el módulo vulnerable algif_aead y expulsa la caché de páginas para binarios setuid.
Helper de mitigación mínima sin reinicio para Copy Fail / CVE-2026-31431.
Este script desactiva la ruta vulnerable del módulo algif_aead e intenta
descargar el módulo inmediatamente. También realiza un intento de expulsión
de la caché de páginas para /usr/bin/su.
Esto es una mitigación, no una corrección del kernel. Instale el kernel parcheado de su proveedor tan pronto como esté disponible.
El script ejecuta la mitigación recomendada por el aviso público de Copy Fail:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
Esto evita que algif_aead se cargue nuevamente mediante modprobe y lo descarga
del kernel en ejecución si es posible.
Luego ejecuta un pequeño fragmento de Python que llama a posix_fadvise() con
POSIX_FADV_DONTNEED para la primera página de :
/usr/bin/suos.posix_fadvise(fd, 0, page, os.POSIX_FADV_DONTNEED)
Este es un intento de mejor esfuerzo para expulsar la página relevante de la caché de páginas. No sustituye el parcheo y no garantiza la limpieza de todos los binarios setuid objetivo posibles.
/usr/bin/su?La prueba de concepto pública de Copy Fail apunta a /usr/bin/su por defecto.
Por lo tanto, este script intenta eliminar la primera página de /usr/bin/su de
la caché de páginas después de desactivar la ruta vulnerable del módulo.
Si su entorno tiene explotación probada o sospechada contra otro binario setuid, revise y adapte el script en consecuencia.
Revise el script primero.
sudo ./mitigate-copy-fail.sh
Compruebe que el módulo no esté cargado:
lsmod | grep '^algif_aead' || echo "algif_aead is not loaded"
Compruebe que la regla de modprobe exista:
cat /etc/modprobe.d/disable-algif.conf
Salida esperada:
install algif_aead /bin/false
Intente cargar el módulo manualmente:
sudo modprobe algif_aead
Debería fallar o negarse a cargar.
Solo revierta esto después de instalar un kernel corregido o después de aceptar el riesgo.
sudo rm -f /etc/modprobe.d/disable-algif.conf
sudo modprobe algif_aead
Este script no:
Para cargas de trabajo no confiables como contenedores, sandboxes, ejecutores de
CI y hosts multiusuario, considere endurecimiento adicional como bloquear la
creación de sockets AF_ALG con seccomp.