Zero-day en el núcleo de Linux: basta un paquete para que el atacante convierta el servidor en su trofeo

Zero-day en el núcleo de Linux: basta un paquete para que el atacante convierta el servidor en su trofeo

Lo que parecía comunicación rutinaria se convierte en palanca para acceder a más poder

image

Investigadores de la empresa Doyensec junto con un autor independiente bajo el seudónimo BitsByWill demostraron recientemente una cadena de explotaciones funcional, que permite ejecutar código de forma remota en el núcleo de Linux a través del componente KSMBD — el servidor SMB3 integrado. Los especialistas mostraron un exploit fiable contra el núcleo 6.1.45, logrando ejecución remota de código con una probabilidad de éxito superior al 95 % y analizaron en detalle la combinación de vulnerabilidades utilizadas en el ataque.

El ataque comienza con un desbordamiento de montón no autenticado en el manejador de autenticación NTLM — vulnerabilidad CVE-2023-52440. El atacante envía un SMB2_SESSION_SETUP especialmente formado con el campo SessionKey sobredimensionado, lo que provoca un desbordamiento controlado del SLUB en la asignación kmalloc-512 y proporciona un primitivo de escritura en el montón. A continuación se aprovecha un segundo fallo — un error en el analizador de atributos extendidos (CVE-2023-4130), que en presencia de un búfer EA malicioso ofrece un primitivo de lectura fuera de límites y permite extraer punteros desde el montón. La combinación de «writeheap» y «writeleak» abre el camino para eludir KASLR mediante la lectura de punteros desde kmalloc-1k, donde se almacenan los objetos de las conexiones de KSMBD.

Los investigadores describen la metodología como una técnica de pulverización y comprobación: se crean muchas conexiones y sesiones SMB y luego se vuelve a activar el desbordamiento hasta que una de las sesiones queda corrompida. Tras obtener la dirección base del núcleo, el atacante ensambla una cadena ROP, desplaza la pila a una región controlada, sobrescribe punteros de función en objetos en kmalloc-1k y llama a call_usermodehelper para iniciar un shell inverso en el espacio de usuario. Para estabilizar la explotación se emplea un gadget «sleep» que mantiene vivo el hilo del núcleo y evita el bloqueo del sistema.

Los autores subrayan que KSMBD suele estar desactivado en la mayoría de instalaciones, por lo que compromisos a gran escala no están garantizados, pero si existe un núcleo 6.1.x desactualizado con KSMBD activado y acceso desde una red no confiable, el riesgo es real.

Las recomendaciones prácticas incluyen actualizar de inmediato a la versión del núcleo que contiene las correcciones, activar los mecanismos de protección estándar — SMEP, SMAP, KPTI y la aleatorización de freelist para slabs —, lo que reduce la fiabilidad de la explotación pero no hace el sistema completamente invulnerable, y migrar a servidores SMB en espacio de usuario si los requisitos de rendimiento lo permiten. Medidas adicionales: restringir el acceso a SMB desde redes no verificadas, desactivar la escritura anónima y monitorizar el tráfico SMB anómalo.

El caso demostrado es un recordatorio de los riesgos de alojar lógica de red compleja en el espacio del núcleo: la posible ganancia de rendimiento se traduce en una mayor superficie de ataque. Los administradores deben implementar revisiones periódicas de los módulos del núcleo y aplicar con rapidez las actualizaciones de seguridad, además de valorar la necesidad de activar KSMBD en servidores accesibles desde el exterior.

¿Tu Wi-Fi doméstico es una fortaleza o una casa de cartón?

Descubre cómo construir una muralla impenetrable