Dos vulnerabilidades críticas de contrabando de solicitudes HTTP en Node.js. Actualice de inmediato

Dos vulnerabilidades de seguridad en Node.js que permitían el contrabando de solicitudes HTTP en JavaScript han sido corregidas por los mantenedores del proyecto. Como algunos usuarios recordarán, Node.js es una implementación del lado del servidor que permite la ejecución de JavaScript fuera del navegador ampliamente utilizada.

Inicialmente reportadas por los investigadores Mattias Grenfeldt y Asta Olofsson como parte de un proyecto universitario, el reporte ha sido reeditado como parte de una presentación para IEE EDOC 2021.

El hallazgo de estas fallas requirió el despliegue de profundos análisis en seis servidores web de código abierto y, aunque al inicio no encontraron falla alguna, eventualmente se encontraron con estas fallas de contrabando de solicitudes HTTP. Esta variante de ataque interfiere con la forma en que los sitios web procesan las secuencias de solicitudes HTTP recibidas de los usuarios.

Identificada como CVE-2021-22959, la primera falla permite el contrabando de solicitudes HTTP debido a espacios en los encabezados, además de que el analizador HTTP acepta solicitudes con un espacio después del nombre del encabezado y antes de los dos puntos. Acorde a Grenfeldt, la combinación de esta falla con un proxy que ignora dichos encabezados podría generar severos problemas.

Por otra parte, CVE-2021-22960 involucra una técnica de ataque novedosa, mediante la cual la combinación de terminación de línea defectuosa en uno de los proxies investigados y el análisis incorrecto de extensiones de fragmentos en Node permite el contrabando de solicitudes. Los expertos descubrieron que el proxy vulnerable buscaba un único carácter de nueva línea (LF) para terminar la línea que contenía el tamaño del fragmento, pero no verifica correctamente si existe un retorno de carro antes del LF.

Los investigadores también mencionaron que la combinación de estas dos fallas de seguridad permitiría construir un cuerpo fragmentado que el proxy interpreta de una manera y Node.js interpreta de forma diferente. Este mismo comportamiento también fue identificado en otros tres servidores analizados, por lo que los expertos no descartan que el problema resulte ser más grave de lo que aparenta. Por ello, es fundamental que los usuarios de esta implementación actualicen a la brevedad.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).