Copy Fail: vulnerabilidad crítica, secuestro de Linux con acceso root (CVE-2026-31431) ~ Segu-Info

La vulnerabilidad,
CVE-2026-31431, bautizada
Copy Fail, es un pequeño script de 732 bytes que puede brindarle a un usuario
normal acceso completo a root. Sin condiciones de carrera. Sin trucos
de sincronización. No hay que bloquear el sistema diez veces con la esperanza
de que uno funcione. Simplemente funciona. Todas las veces.


CVE-2026-31431 es una vulnerabilidad crítica de Escalamiento de Privilegios
Locales (LPE)

que rompe algunas suposiciones fundamentales de confianza en el kernel de
Linux. Obliga a afrontar la realidad de que incluso operaciones aparentemente
inocuas pueden ocultar profundas fallas de seguridad.

Lo extraño es cuánto tiempo estuvo ahí, en silencio, sin alarmas. No hay
signos evidentes. Solo esperando que alguien conecte los puntos. Este hallazgo
fue posible gracias a la inteligencia artificial, pero surgió a partir de una
observación del investigador de Theori, Taeyang Lee, quien estudiaba cómo el
subsistema criptográfico de Linux interactúa con los datos almacenados en la
caché de páginas. Utilizó Xint Code para ampliar su investigación a todo el subsistema criptográfico, y
Copy Fail fue el hallazgo más importante del informe.

El alcance de Copy Fail (PoC) es muy amplio:
afecta prácticamente a todas las distribuciones principales de Linux con
kernels creados desde 2017 hasta el lanzamiento del parche

No se trata de condiciones de carrera, trucos de sincronización ni de una
distribución específica. Simplemente funciona. Afecta básicamente a todas las
distro:
Ubuntu,
Debian,
Amazon Linux,
RHEL,
SUSE. Mismo script, mismo resultado: rootSu divulgación pública fue seguida rápidamente por esfuerzos coordinados de
parcheo en toda la industria, un testimonio de su grave impacto.

Lo que realmente preocupa es cómo funciona: el atacante no cambia archivos en
el disco, sino que corrompe silenciosamente el caché de la página, que es lo
que utiliza el sistema cuando lee y ejecuta archivos. Entonces el archivo se
ve perfectamente y las sumas de verificación coinciden. Nada aparece
modificado. Pero en la memoria ha sido alterado.

El problema es que el kernel confía en esa cacha, en esa versión en memoria.
Entonces si se toma algo como /usr/bin/su, que se ejecuta con
privilegios elevados, se inyectan algunos bytes en su copia en caché y
se ejecuta… se obtiene root. El disco nunca cambia, por lo que sus
herramientas de detección habituales simplemente no detectan nada. Es decir
que el ataque también es sigiloso de una manera cruel.

Ha habido errores graves en Linux antes. Por ejemplo
Dirty Cow (CVE-2016-5195)
funcionaba pero era poco confiable.
Dirty Pipe (CVE-2022-0847)
era inteligente pero limitado. Copy Fail está limpio, funciona y ni siquiera
intenta ocultar su eficacia.

Y luego está el ángulo del contenedor, que podría ser la parte más inquietante
de todas. Como la caché de la página se comparte, esto no es sólo un problema
local.
En la configuración correcta, este ataque puede saltar a través de
contenedores.

Eso significa que un proceso con pocos privilegios dentro de un contenedor
podría afectar al host o a las cargas de trabajo vecinas. Si está ejecutando
una infraestructura multiinquilino, eso debería hacer que se le revuelva un
poco el estómago.

La causa raíz es básicamente una mala suposición en el subsistema
criptográfico del kernel. Un modo específico llamado
authencesn escribe unos cuantos bytes más allá de donde debería, y gracias a cómo
el núcleo conecta las cosas, esos bytes aterrizan directamente en el
contenido almacenado en caché de un archivo. Eso es todo. Cuatro bytes en el
lugar equivocado y todo el sistema se desmorona.

La solución ya se está implementando y básicamente elimina la optimización que
lo hizo posible. Efectivamente, en ajuste de rendimiento de hace años termina
abriendo la puerta a algo grave.

Este no es uno de los errores que
«tal vez se puedan explotar en un laboratorio». Esto es todo lo
contrario. Es simple, portátil y confiable. Esa es una mala combinación.

Qué hacer

Parchear ahora, repensar para siempre. CVE-2026-31431, «Copy Fail», es
una vulnerabilidad crítica de escalamiento de privilegios locales de alto
impacto que ha persistido en los kernels de Linux desde 2017. Su facilidad de
explotación a través de un script PoC mínimo en prácticamente todas las
distribuciones principales la convierte en una amenaza inmediata.

  • Parchear inmediatamente o aplicar la mitigación (ver abajo):
    priorizar y aplicar todas las actualizaciones del kernel disponibles de su
    proveedor de distribución para abordar CVE-2026-31431. Esto no es negociable
    para todos los sistemas Linux.
  • Auditar accesos locales: revisar y restringir el acceso de los
    usuarios locales a los sistemas críticos. Si bien «Copy Fail» requiere
    acceso local inicial, limitar los posibles puntos de entrada es siempre una
    mejor práctica.
  • Controlar escapes de los contenedores: si ejecuta entornos en
    contenedores (Docker, Kubernetes), asuma que sus nodos son vulnerables si no
    se parchean. Aísle las cargas de trabajo y asegúrese de que los núcleos del
    host estén actualizados.

A qué prestar atención

  • Disponibilidad de exploits: espere que las herramientas
    públicas de exploits se generalicen muy rápidamente, si aún no lo han hecho.
    La baja complejidad lo convierte en un objetivo principal para atacantes
    oportunistas.
  • Errores lógicos futuros: «Copy Fail» destaca una clase de errores
    lógicos sutiles que son notoriamente difíciles de detectar. Esta
    vulnerabilidad es un presagio; se espera un enfoque renovado por parte de
    los investigadores sobre temas similares en código de bajo nivel y alta
    confianza.
  • Escrutinio de la cadena de suministro: A continuación se debe
    realizar un mayor escrutinio sobre la seguridad de las bibliotecas y los
    componentes de la infraestructura central. Se deben exigir revisiones de
    seguridad más rigurosas, verificación formal y análisis estático avanzado de
    sus proveedores y proyectos de código abierto.

Mitigación

Esta mitigación impide que el kernel cargue el componente vulnerable.
Es una forma efectiva de «bloquear» un driver o componente del
kernel sin borrarlo.


# echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
# rmmod algif_aead
# smod | grep algif

   Si desea utilizar esa solución sugerida (deshabilitar el módulo
del kernel `algif_aead` con una configuración de modprobe) y no
desea ejecutar la shell para obtener root real, sino solo
verificar si el módulo se puede cargar, aquí hay una versión legible de sus
primeras líneas:

$ python3 -c 'import socket;
s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0);
s.bind(("aead","authencesn(hmac(sha256),cbc(aes))"));
print("algif_aead successfully loaded, mitigation not effective; remove it with: # rmmod algif_aead")'

Si el script imprime el mensaje de error, significa que el sistema pudo
cargar el módulo algif_aead y, por lo tanto, la mitigación falló o no
se aplicó correctamente, y el sistema sigue siendo vulnerable.

Fuente:
Xint-io


Ver fuente

Related Post