Vulnerabilidad de Zero-Day ‘Copy Fail’ (CVE-2026-31431) en Linux Permite Escalada a Root y Escape de Contenedores

Linux

Se ha emitido una alerta de máxima prioridad tras la revelación pública de Copy Fail (CVE-2026-31431), una vulnerabilidad de día cero de alta gravedad en el kernel de Linux que ha permanecido oculta desde 2017. Esta falla lógica permite a un atacante local, sin privilegios especiales y mediante un simple script de Python, obtener acceso de superusuario (root) en prácticamente todas las distribuciones principales (Ubuntu, RHEL, Amazon Linux, SUSE). A diferencia de vulnerabilidades históricas como Dirty Cow o Dirty Pipe, Copy Fail no depende de condiciones de carrera, ni requiere compilaciones complejas, lo que la convierte en una amenaza determinista, universal y altamente explotable en infraestructuras on-premise y entornos cloud contenerizados.


Anatomía del Ataque

La vulnerabilidad se origina en una falla lógica dentro de la plantilla criptográfica authencesn del kernel, explotable a través de la interfaz de sockets AF_ALG.

  • Manipulación de la Caché de Páginas: La optimización introducida en 2017 (algif_aead.c) genera que, al insertar un archivo en un socket AF_ALG mediante la función splice(), el kernel utilice referencias directas a las páginas físicas en memoria (caché de páginas) en lugar de crear copias.
  • Corrupción Silenciosa en Memoria (4 Bytes): Para las operaciones de descifrado, el kernel encadena el origen y el destino. El algoritmo authencesn (utilizado por IPsec) usa el destino como espacio temporal, sobrescribiendo 4 bytes directamente en la memoria caché que pertenece al archivo original. El atacante elige como objetivo un archivo binario crítico con permisos setuid (como /usr/bin/su).
  • Ejecución de Código Privilegiado: La corrupción ocurre únicamente en la memoria viva (RAM). El kernel nunca marca esta página como “modificada” para ser guardada en el disco físico. Por lo tanto, el binario en el disco duro permanece intacto, evadiendo completamente las herramientas de integridad de archivos (FIM) basadas en sumas de comprobación (hashes). El atacante simplemente ejecuta el binario /usr/bin/su (ahora corrupto en memoria a su favor) para obtener una consola shell con privilegios root.

Impacto
  • Compromiso Total del Host: Cualquier usuario local, cuenta de servicio comprometida o script de bajos privilegios puede escalar a control absoluto sobre la máquina.
  • Escape de Contenedores (Kubernetes/Docker): Este es el riesgo corporativo más crítico. Debido a que la caché de páginas del kernel es un recurso compartido entre todos los contenedores y el host subyacente, un contenedor comprometido puede corromper binarios setuid que son utilizados por otros contenedores o por el propio nodo anfitrión. Un atacante puede utilizar esto para saltar del aislamiento del contenedor y lograr el compromiso total del clúster de Kubernetes.

Recomendaciones y Mitigación
  • Aplicación Urgente de Parches (Prioridad Cero): Los administradores de sistemas y equipos de DevSecOps deben actualizar los kernels de Linux a través de los canales oficiales de sus distribuciones de manera inmediata. La falla afecta a versiones desde el kernel 4.14 en adelante.
  • Mitigación Temporal (Workaround) Obligatoria: Si el parche no se puede aplicar inmediatamente debido a ventanas de mantenimiento, se debe desactivar el módulo criptográfico afectado (algif_aead) para eliminar la superficie de ataque, ejecutando como root:

Bash

echo “install algif_aead /bin/false” > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null

Related Post