En el mundo de la seguridad informática, es fundamental estar al tanto de las últimas vulnerabilidades y amenazas que pueden afectar a los sistemas operativos. Recientemente, se ha descubierto una preocupante vulnerabilidad en el kernel de Linux, conocida como StackRot (CVE-2023-3269).
Esta vulnerabilidad podría ser aprovechada por atacantes con capacidades mínimas para comprometer el kernel y elevar los privilegios. En este artículo, analizaremos en detalle la vulnerabilidad StackRot, sus implicaciones y las medidas que los usuarios pueden tomar para protegerse.
El descubrimiento de StackRot: Una vulnerabilidad crítica en el kernel de Linux
La vulnerabilidad StackRot fue descubierta e informada por el investigador de seguridad Ruihan Li. Según Li, esta vulnerabilidad afecta al subsistema de administración de memoria del kernel de Linux, que es responsable de implementar la memoria virtual, la paginación de demanda y la asignación de memoria para los programas del kernel y del espacio de usuario.
StackRot afecta a todas las configuraciones del kernel en las versiones de Linux 6.1 a 6.4, lo que implica una amplia gama de sistemas afectados.
Si bien Li informó inicialmente sobre esta vulnerabilidad el 15 de junio, la creación de una solución efectiva tomó casi dos semanas debido a su complejidad. Linus Torvalds, el creador del kernel de Linux, lideró los esfuerzos para abordar este problema de seguridad.
Detalles técnicos de StackRot: Cómo afecta al subsistema de administración de memoria
La vulnerabilidad StackRot se origina en el manejo de la expansión de la pila dentro del subsistema de administración de memoria del kernel.
Específicamente, el punto débil se encuentra en el «Maple Tree«, un nuevo sistema de estructura de datos para la administración de áreas de memoria virtual (VMA) introducido en el kernel 6.1 de Linux.
Este árbol de arce o Maple Tree en ingles se basa en el mecanismo de lectura-copia-actualización (RCU) y reemplazó a los «Tree red-black«.
La vulnerabilidad se aprovecha de un problema de uso después de liberar (UAF), que ocurre cuando el árbol de arce reemplaza un nodo sin obtener el bloqueo de escritura de administración de memoria (MM).
Durante la expansión de la pila y la eliminación de la brecha entre los VMA, se crea un nuevo nodo en el árbol de arce, mientras que el nodo antiguo se marca para su eliminación después de que finalicen las lecturas actuales debido a la seguridad de RCU del árbol de arce.
Sin embargo, durante el período de gracia de la RCU, un proceso puede acceder al nodo antiguo, lo que crea un contexto explotable para elevar los privilegios.
Es importante destacar que explotar la vulnerabilidad StackRot no es una tarea sencilla. Ruihan Li afirma que esta podría ser la primera vulnerabilidad de uso después de liberar por RCU (UAFBR) teóricamente explotable.
Sin embargo, se espera que se publiquen detalles técnicos completos sobre StackRot, así como un exploit de prueba de concepto (PoC) a finales de julio.
Protegiendo tu sistema: Medidas para mitigar el riesgo de la vulnerabilidad StackRot
Afortunadamente, se ha lanzado un parche para abordar la vulnerabilidad StackRot. Desde el 1 de julio, los núcleos estables afectados por esta vulnerabilidad cuentan con una solución disponible.
Esto se logró gracias a los esfuerzos de Linus Torvalds y su equipo, quienes fusionaron la solución en el árbol principal del kernel de Linux durante la ventana de fusión para el kernel 5.5.
Es importante destacar que, a pesar de que se ha lanzado un parche, aún se esperan detalles técnicos completos sobre la vulnerabilidad StackRot y un código de explotación completo para fines de julio.
Esto significa que los ciberdelincuentes podrían intentar aprovechar la vulnerabilidad antes de que se implementen las soluciones completas. Por lo tanto, es fundamental que los usuarios tomen medidas proactivas para protegerse.
Para mitigar los riesgos asociados con la vulnerabilidad StackRot, se recomienda a los usuarios verificar la versión del kernel de Linux que están utilizando en su distribución y asegurarse de no estar ejecutando una versión afectada por esta vulnerabilidad.
Si se está utilizando una versión vulnerable, se debe actualizar a una versión más reciente que contenga el parche de seguridad.
Es esencial recordar que no todas las distribuciones de Linux han adoptado la versión 6.1 del kernel, donde se encuentra la vulnerabilidad StackRot.
Por ejemplo, Ubuntu 22.04.2 LTS (Jammy Jellyfish) utiliza la versión 5.19 del kernel de Linux, que no se ve afectada por StackRot.
Sin embargo, Debian 12 (Bookworm) utiliza la versión 6.1 y, por lo tanto, es vulnerable a esta vulnerabilidad. Se recomienda a los usuarios consultar la lista completa de distribuciones de Linux que utilizan la versión 6.1 o superior del kernel para verificar si su distribución es vulnerable.
Comentarios!