🐧 ¿Cómo funciona 'Copy Fail'? El exploit de 732 bytes que otorga acceso Root en Linux (CVE-2026-31431) (+MITIGACIÓN)


Análisis técnico de "Copy Fail" (CVE-2026-31431), el fallo lógico en el kernel de Linux que permite acceso Root indetectable mediante la caché de pág.



La vulnerabilidad "Copy Fail" (CVE-2026-31431) permite a cualquier usuario local obtener privilegios de Root de forma infalible en casi todas las distribuciones de Linux desde 2017, aprovechando un error lógico en el subsistema criptográfico que afecta la integridad de la memoria caché del kernel.


📅 El origen del fallo: Una optimización fallida de 9 años

Detectada por la firma de seguridad Theori mediante su herramienta de IA, Xint Code, esta vulnerabilidad tiene una puntuación CVSS de 7,8. El problema se remonta a 2017, cuando se introdujo una optimización en el archivo algif_aead.c para permitir operaciones criptográficas "in-place".

El fallo ocurre cuando esta optimización se combina con la llamada al sistema splice(). Esta mezcla permite que las páginas de la caché de página (copias de archivos en la RAM) entren en una lista de dispersión con permisos de escritura. Durante un descifrado normal, el algoritmo escribe datos temporales en esas páginas, permitiendo al atacante modificar binarios críticos directamente en la memoria.

Comparativa: Copy Fail vs. Vulnerabilidades Previas

Atributo TécnicoCopy Fail (CVE-2026-31431)Dirty Pipe (CVE-2022-0847)
Fiabilidad del Exploit100% (Determinístico)Alta (Probabilístico)
Detección por AIDE/dm-verityIndetectable (Solo RAM)Indetectable (Solo RAM)
Tamaño del Exploit732 Bytes (Python)Moderado (C)
Complejidad de ejecuciónBaja (No requiere carrera de hilos)Media (Condición de carrera)

🔍 Anatomía del ataque: Modificando el binario su

El atacante no necesita modificar el archivo físico en el disco duro. El exploit apunta a la copia en memoria del binario /usr/bin/su. Al alterar solo cuatro bytes en la caché de página, el sistema cree que el usuario ha sido autenticado correctamente, otorgando una shell con privilegios de Root.

  • Sin rastro en disco: Dado que la modificación solo vive en la RAM, al reiniciar el sistema o liberar la caché, el binario vuelve a su estado original, dificultando enormemente la forense digital.

  • Descubrimiento por IA: Este es uno de los primeros grandes fallos lógicos complejos detectados íntegramente por un sistema de IA en menos de una hora de análisis.


🛡️ Guía de Mitigación Paso a Paso

Si eres administrador de sistemas y no puedes actualizar el kernel de inmediato (commit a664bf3d603d), debes aplicar estas medidas de urgencia:

  1. Inhabilitar el módulo vulnerable:

    El módulo algif_aead raramente se usa en servidores de producción estándar. Puedes bloquearlo con:

    echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/copy-fail.conf

  2. Restricción de Sockets AF_ALG:

    En entornos de contenedores (Docker/Kubernetes), utiliza perfiles de seccomp para denegar la creación de sockets de la familia AF_ALG.

  3. Actualización de Distribución:

    Verifica que tu sistema cuente con los parches lanzados el 29 de abril de 2026 por Ubuntu, RHEL, Amazon Linux o SUSE.

🔍 FAQ: Análisis del Exploit "Copy Fail" (CVE-2026-31431)

¿En qué consiste el error lógico de Copy Fail?

El fallo reside en una optimización del archivo algif_aead.c que, al combinarse con la llamada splice(), permite que las páginas de la caché de memoria (RAM) adquieran permisos de escritura indebidos. Esto permite modificar binarios críticos como /usr/bin/su mientras están cargados en memoria.

¿Por qué este exploit es indetectable para sistemas AIDE o dm-verity?

Porque el ataque ocurre exclusivamente en la "caché de página" (RAM). No se modifica ningún bit en el almacenamiento físico (SSD/HDD). Al reiniciar el sistema, la caché se vacía y el binario original intacto vuelve a cargarse, sin dejar rastro forense en el disco.

¿Cómo puedo mitigar el fallo si no puedo actualizar el Kernel?

La medida de urgencia es inhabilitar el módulo vulnerable mediante el comando: echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/copy-fail.conf. Además, se recomienda usar perfiles de seccomp en contenedores para denegar sockets AF_ALG.

¿Qué rol jugó la IA en el descubrimiento de esta vulnerabilidad?

Fue detectada por la herramienta de IA Xint Code (de Theori), la cual logró identificar un error de lógica compleja que había pasado desapercibido por analistas humanos durante 9 años, realizando el hallazgo en menos de una hora de análisis del código fuente.

Jhonathan I. Castro M.

Por: Jhonathan Castro

CEO | Editor en NEWSTECNICAS

Manténgase al día con la información minuto a minuto en Facebook Twitter/X Threads Bluesky ¡!NEWSTECNICAS | Tecnologia, IA y Gaming!


 

Blogarama - Blog Directory