Nada es tan molesto como un agujero de seguridad en un programa de seguridad. Xiaochen Zou, estudiante de posgrado de la Universidad de California, Riverside, buscó errores en Linux y encontró uno enorme. Esta vulnerabilidad, CVE-2022-27666, en el módulo criptográfico esp6 (Encapsulating Security Payload) de IPSec se puede abusar para escalar privilegios locales.
El problema es su agujero de desbordamiento de montón básico. Xiaochen explicó que «la lógica básica de esta vulnerabilidad es que el búfer de recepción de un mensaje de usuario en el módulo esp6 es un búfer de 8 páginas, pero el remitente puede enviar un mensaje de más de 8 páginas, lo que claramente crea un desbordamiento del búfer». Sí, sí lo hará.
Como siempre sucede con los desbordamientos de búfer, estas son malas noticias. Como Red Hat lo pone en su aviso de seguridad sobre el error, «Esta falla permite que un atacante local con un privilegio de usuario normal sobrescriba los objetos del montón del kernel y puede causar una amenaza de escalada de privilegios locales».
Esto es lo suficientemente malo como para que tanto Red Hat como el Instituto Nacional de Estándares y Tecnologías (NIST, por sus siglas en inglés) le otorguen al agujero una puntuación alta del Sistema de puntuación de vulnerabilidad común (CVSS, por sus siglas en inglés) de 7,8. O, como me gusta llamar a las vulnerabilidades con puntajes tan altos, es un «¡Arréglalo ahora!» insecto.
También: Los desarrolladores de Linux reparan los agujeros de seguridad más rápido que nadie, dice Google Project Zero
Red Hat también señaló que si un sistema Linux ya usa IPsec y tiene configuradas asociaciones de seguridad (SA) de IPSec, entonces no se necesitan privilegios adicionales para explotar el agujero. Dado que casi todo el mundo usa IPSec y las SA son esenciales para el protocolo de seguridad de la red, esto significa que casi todos los que tienen el código vulnerable en su distribución de Linux están expuestos a ataques.
Xiaochen descubrió que las últimas distribuciones de Ubuntu, Fedora y Debian Linux se pueden piratear con él. Red Hat informa que Red Hat Enterprise Linux (RHEL) 8 es vulnerable. Específicamente, si su Linux contiene un módulo criptográfico esp6 2017, que contiene las confirmaciones cac2661c53f3 y 03e2a30f6a27, es atacable.
Por lo general, un ataque de este tipo puede dejar fuera de línea un sistema Linux. Xiaochen cavó más profundo y encontró más. En su búsqueda, encontró una manera de eludir la aleatorización del diseño del espacio de direcciones del kernel (KASLR). KASLR, como su nombre lo dice, hace que sea más difícil explotar las vulnerabilidades de la memoria al colocar los procesos en direcciones de memoria aleatorias, en lugar de direcciones fijas.
También: Desagradable agujero de seguridad del cortafuegos netfilter de Linux encontrado
Luego, después de colgar el proceso, un atacante puede usar Filesystem in User Space (FUSE) para crear su propio sistema de archivos y asignar memoria en él. En consecuencia, todas las lecturas y escrituras que pasan por esa memoria serán manejadas por su propio sistema de archivos. Una vez hecho esto, es relativamente trivial hacerse root en el sistema. Y, como todos sabemos, una vez que el atacante tiene root, se acabó el juego. El atacante ahora está a cargo de la computadora.
La buena noticia es que la solución ya está disponible en Ubuntu, Debian, el kernel de Linux y la mayoría de las otras distribuciones. ¡Ahora ponte parches!