Nueva vulnerabilidad en el kernel de Linux permite escalamiento de privilegios y escape de contenedores
Nueva vulnerabilidad en el kernel de Linux permite escalamiento de privilegios y escape de contenedores

Nueva vulnerabilidad en el kernel de Linux permite escalamiento de privilegios y escape de contenedores

Un nuevo ataque contra el kernel de Linux, denominado SLUBStick, ha sido descubierto por investigadores de la Universidad Tecnológica de Graz (Austria). Este ataque puede aprovechar vulnerabilidades limitadas para obtener capacidad de lectura y escritura arbitraria en la memoria del sistema. Esto permite a los atacantes elevar sus privilegios o escapar de contenedores.

Descubrimiento y demostración

El ataque fue demostrado en versiones del kernel de Linux 5.9 y 6.2, la más reciente disponible. Los investigadores identificaron nueve CVE existentes en sistemas de 32 y 64 bits, lo que demuestra una alta versatilidad del método utilizado.

Funcionamiento con defensas modernas

SLUBStick funciona incluso cuando están activadas las principales defensas del kernel, como Supervisor Mode Execution Prevention (SMEP), Supervisor Mode Access Prevention (SMAP) y Kernel Address Space Layout Randomization (KASLR). Esto lo hace especialmente peligroso, ya que puede evadir medidas de seguridad comunes.

Detalles técnicos

El kernel de Linux administra la memoria mediante el uso de fragmentos llamados «slabs», asignando y desasignando estos para diferentes estructuras de datos. Las fallas en este proceso pueden permitir a los atacantes corromper o manipular las estructuras, lo que se conoce como ataques de caché cruzado.

SLUBStick explota vulnerabilidades del heap, tales como un doble-liberación, uso después de liberación o escritura fuera de límites. Estas condiciones permiten al ataque manipular el proceso de asignación de memoria.

Requisitos y limitaciones

Para que SLUBStick sea efectivo, se requiere acceso local en la máquina objetivo con capacidades de ejecución de código. Además, es necesario la presencia de una vulnerabilidad del heap en el kernel de Linux, que luego se utiliza para obtener acceso a la memoria.

Aunque esto puede hacer que el ataque parezca poco práctico, ofrece beneficios significativos para los atacantes. Puede permitirles lograr un escalamiento de privilegios a root, eludir las defensas del kernel, realizar escapes de contenedores o integrarse en una cadena de ataque compleja.

Posibles consecuencias

En la fase posterior a la explotación, SLUBStick podría modificar estructuras del kernel o mantener la persistencia, lo que dificulta la detección por parte de los defensores.

Los investigadores han publicado un documento técnico [PDF] con todos los detalles sobre el ataque y los posibles escenarios de explotación. Además, se ha compartido en un repositorio de GitHub para que otros puedan experimentar con los exploits utilizados.