
Prueba de concepto del exploit para CVE-2026-31431, una escalada local de privilegios en Linux mediante un fallo lógico en authencesn, con variante ARM64 para validación autorizada en laboratorio.
Copy Fail es una escalada de privilegios local en Linux publicada por Theori/Xint como
CVE-2026-31431. La página del proyecto describe un error lógico en
authescesn que se puede alcanzar a través de AF_ALG y splice(), produciendo una
pequeña escritura en la caché de páginas contra un binario setuid. En sistemas afectados, un
usuario local sin privilegios puede convertirse en root.
Este repositorio mantiene una copia de la prueba de concepto original y añade una variante ARM64 probada en Ubuntu 25.10 ARM.

| Archivo | Propósito |
|---|---|
copy_fail_exp.py | PoC original de upstream, con su URL de origen indicada en el encabezado del archivo. |
copy_fail_exp_arm64.py | PoC adaptado para ARM64, probado y funcional en Ubuntu 25.10 ARM. |
Estos scripts son solo para validación autorizada en sistemas de laboratorio desechables. No
son escáneres de vulnerabilidades generales. Intentan la ruta de explotación de Copy Fail
contra /usr/bin/su; si el host es vulnerable y el entorno es
compatible, el resultado es un shell root real.
⚡ Usa el PoC original para validar la ruta de explotación pública en sistemas Linux compatibles. Usa la variante ARM64 para probar hosts Linux basados en ARM donde la carga útil integrada difiere del script de upstream.
Una ejecución fallida no demuestra que un host esté parcheado. La versión del kernel, los backports de la distribución, la arquitectura, el endurecimiento local, la política de contenedores y el entorno de ejecución pueden afectar el comportamiento.
Parchea primero. Según copy.fail, los sistemas deben actualizar
a un kernel de distribución que incluya el commit a664bf3d603d de mainline, y luego
reiniciar con ese kernel y verificar la versión en ejecución.
Hasta que el kernel pueda ser parcheado, desactiva el módulo algif_aead:
sudo sh -c 'printf "%s\n" "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf'
sudo rmmod algif_aead 2>/dev/null || true
Para cargas de trabajo no confiables como contenedores, runners de CI, sandboxes y hosts
de desarrollo compartidos, también bloquea la creación de sockets AF_ALG con una política seccomp.
La guía de mitigación de copy.fail señala que desactivar algif_aead no debería
afectar el uso criptográfico típico de dm-crypt/LUKS, kTLS, IPsec/XFRM, OpenSSL/GnuTLS/NSS, SSH o
el keyring del kernel. Puede afectar software configurado explícitamente para usar
sockets AF_ALG.