Este exploit permite aprovechar una vulnerabilidad de ejecución remota de código en Windows
Un investigador ha publicado un exploit de prueba de concepto (PoC) para CVE-2021-31166. Esta es una vulnerabilidad altamente crítica en el conjunto del protocolo HTTP (http.sys) que podría conducir a la ejecución remota de código (RCE).
Microsoft descubrió la vulnerabilidad internamente y liberó un parche en su actualización del martes de parches del 11 de mayo. Esta fue la vulnerabilidad más grave en ese conjunto. La vulnerabilidad en http.sys que no requiere ni la autenticación del usuario ni la interacción del usuario para explotarlo. Un exploit permitiría ejecución remota de código con privilegios de kernel o un ataque de denegación de servicio (DoS).
Según un tweet de Justin Campbell de Microsoft, la vulnerabilidad fue encontrada por @_mxms y @ fzzyhd1.
http.sys permite que Windows y las aplicaciones se comuniquen con otros dispositivos; se puede ejecutar de forma independiente o junto con Internet Information Services (IIS).
Microsoft aconseja la aplicación de parches prioritarios
“En la mayoría de las situaciones, un atacante no autenticado podría enviar un paquete especialmente diseñado a un servidor de destino utilizando HTTP Protocol Stack (http.sys) para procesar paquetes”, explicó Microsoft en su aviso. Dado que la vulnerabilidad puede propagarse por sí misma (wormable), Microsoft recomienda priorizar el parcheo de los servidores afectados.
“Con una puntuación CVSS de 9.8, la vulnerabilidad anunciada tiene el potencial de tener un impacto directo y también es excepcionalmente fácil de explotar. Esto puede llevar a una denegación de servicio remota y no autenticada (pantalla azul de la muerte) para los productos afectados”. Esto según lo dicho por Steve Povolny de McAfee en un análisis de la vulnerabilidad mencionada.
Povolny explicó que el problema radica en cómo Windows rastrea incorrectamente los punteros mientras procesa objetos en paquetes de red que contienen solicitudes HTTP. La vulnerabilidad solo afecta a las últimas versiones de Windows 10 y Windows Server. Esto significa que la exposición de los servidores empresariales con conexión a Internet es “bastante limitada”. Esto se debe a que muchos de estos sistemas ejecutan versiones del canal de servicio a largo plazo (LTSC). Por ello, Windows Server 2016 y 2019 no son susceptibles a esta vulnerabilidad.
Explotación pública de la vulnerabilidad
El investigador Axel Souchet, que solía trabajar para Microsoft, publicó el PoC en GitHub y señaló que la vulnerabilidad ocurre en http!UlpParseContentCoding
. Ahí es donde la función tiene un LIST_ENTRY
local y le agrega un elemento. “Cuando está hecho, lo mueve a la estructura de Request; pero no NULL
sale de la lista local”, explicó. “El problema con eso es que un atacante puede activar una ruta de código que libera cada [entrada] de la lista local. Esto puede dejarla sin funcionamiento en el objeto Request“.
Este no es el primer exploit de PoC para CVE-2021-31166 que lanza Souchet, pero este es el primero que se puede extender por la red. Durante el fin de semana, lanzó un PoC que solo bloqueaba el sistema Windows afectado siempre que se ejecutara en un servidor IIS. Ese exploit inicial muestra cómo un atacante puede aprovechar la vulnerabilidad para causar un DoS en un sistema objetivo enviándole paquetes especialmente diseñados.
Ciclo de vida del exploit
La publicación de un código PoC como este suele ser el primer paso en el ciclo de vida de un exploit. Como explicó Mayra Rosario Fuentes de Trend Micro en la RSA Conference 2021 el lunes, el siguiente paso en ese ciclo de vida es que los ciberdelincuentes lo vendan.
Una vez que está en estado puro, una vulnerabilidad pasa a la etapa de divulgación pública. A continuación, el proveedor corrige la vulnerabilidad. Finalmente, esa vulnerabilidad sigue dos caminos: si está parcheada, eso es todo, fin de vida. De lo contrario, el exploit sigue ahí, esperando ser comprado en foros clandestinos y liberado en las víctimas desafortunadas que aún no hayan parcheado.
Un ejemplo es el ciclo de vida de ocho meses de CVE-2020-9054. Este exploit fue vendido en un foro de ciberdelincuentes por $20,000 en febrero de 2020. El exploit fue escrito por el periodista de ciberseguridad Brian Krebs y fue divulgado públicamente y parcheado por Microsoft en marzo de 2020. Desafortunadamente, el script terminó siendo explotado por una botnet un mes después. Esa botnet era una variante de la botnet Mirai llamada Mukashi que tenía como objetivo los dispositivos de almacenamiento conectados a la red (NAS) de Zyxel. La botnet permitió a los actores de amenazas comprometer y controlar los dispositivos de forma remota.
Cinco meses después de que se parcheó, en agosto de 2020, otra publicación en otro foro solicitó un exploit, ofreciendo un pago de $2,000. Es una décima parte del exploit original. No obstante, es una indicación sólida de que algunas vulnerabilidades tienen una vida útil prolongada, sobre todo si se utilizan para vulnerar productos de Microsoft. Después de todo, los exploits de Microsoft son, con mucho, los tipos de exploits más solicitados y vendidos en el mercado clandestino. Esta es una razón más para seguir el consejo de Microsoft de priorizar el parcheo para esta vulnerabilidad.