Una vulnerabilidad en Linux denominada ‘Copy Fail’ permite a atacantes obtener privilegios de root en las principales distribuciones

Se ha publicado un exploit para una vulnerabilidad de escalada de privilegios local denominada 'Copy Fail' que afecta a kernels de Linux lanzados desde 2017, permitiendo a un atacante local sin privilegios obtener permisos de root. La vulnerabilidad está registrada como CVE-2026-31431 y fue descubierta por la empresa de seguridad ofensiva Theori utilizando su plataforma de pentesting impulsada por inteligencia artificial, Xint Code, tras escanear el subsistema crypto de Linux durante aproximadamente una hora.

Theori reportó el hallazgo al equipo de seguridad del kernel de Linux el 23 de marzo, y los parches estuvieron disponibles en el plazo de una semana. Los detalles técnicos y un exploit de prueba de concepto para la falla se hicieron públicos ayer.

Aunque la empresa de ciberseguridad desarrolló y probó un exploit basado en Python '100% confiable' para cuatro distribuciones de Linux (Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1 y SUSE 16), los investigadores afirman que el 'script de 732 bytes consigue acceso root en todas las distribuciones de Linux lanzadas desde 2017'.

Causa raíz de Copy Fail

En un informe detallado, los investigadores señalan que el problema de Copy Fail (CVE-2026-31431) 'es un error lógico en el template criptográfico authencesn del kernel de Linux' que permite a un usuario autenticado realizar de manera confiable una 'escritura de 4 bytes en la caché de página de cualquier archivo legible del sistema'.

Combinando la interfaz basada en sockets 'AF_ALG', que proporciona acceso a las funciones criptográficas del kernel de Linux desde el espacio de usuario, y la llamada al sistema splice(), un usuario sin privilegios puede realizar una escritura controlada de 4 bytes en la caché de página de un archivo, en lugar de en un búfer normal. Si esos 4 bytes impactan en un binario setuid-root, pueden alterar su comportamiento al ejecutarse, otorgando al atacante privilegios de root.

La falla fue introducida en 2017, cuando el equipo del kernel de Linux agregó una optimización 'in-place' a la ruta criptográfica, lo que significó que comenzó a reutilizar el mismo búfer en lugar de mantener estrictamente separadas las entradas y salidas.

Impacto y soluciones

El PoC de Theori es un exploit de 732 bytes consistentemente efectivo que otorga acceso root a todas las principales distribuciones de Linux que ejecutan una versión vulnerable del kernel de Linux, según los investigadores.

Demostraron y confirmaron el exploit Copy Fail en Ubuntu 24.04, Amazon Linux 2023, RHEL 10.1 y SUSE 16. Copy Fail se caracteriza por estar más cerca de la vulnerabilidad 'Dirty Pipe' que de las fallas típicas de escalada de privilegios locales, es más confiable (se afirma un 100% de éxito) y es más ampliamente explotable que la mayoría de los errores de esta clase. Incluso en comparación con Dirty Pipe, Copy Fail se considera más práctico.

Copy Fail es más portátil. Un script, todas las distribuciones, sin offsets. Dirty Pipe necesitaba kernel ≥ 5.8 con parches específicos; Copy Fail cubre toda la ventana de 2017 a 2026.

CVE-2026-31431 fue corregido en upstream el 1 de abril revirtiendo el problemático comportamiento criptográfico 'in-place' introducido en la versión 4.14 del kernel de Linux en 2017. Las correcciones se hicieron disponibles en las versiones 6.18.22, 6.19.12 y 7.0.

Según los investigadores, las principales distribuciones de Linux ya están implementando la corrección mediante actualizaciones del kernel. Sin embargo, Will Dormann, analista principal de vulnerabilidades de Tharros, señala que no hay 'actualizaciones oficiales para CVE-2026-31431'. 'Fedora 42 y versiones posteriores tienen actualizaciones, pero no hay aviso oficial ni reconocimiento de CVE-2026-31431', dice Dormann.

Como mitigación provisional para aquellos que aún no han recibido las actualizaciones, los investigadores recomiendan deshabilitar la interfaz criptográfica vulnerable, lo que bloquearía la creación de sockets AF_ALG, o deshabilitar el módulo algif_aead con los comandos: echo 'install algif_aead /bin/false' > /etc/modprobe.d/disable-algif.conf y rmmod algif_aead.

Los investigadores de Theori sugieren tratar como prioridad en el proceso de parcheo los hosts Linux multiinquilino, clústeres de Kubernetes/contenedores, granjas de compilación/CI y SaaS en la nube que ejecutan código de usuario.

image
image
Getting root shell on four Linux distributions
Getting root shell on four Linux distributions
article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *