Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en h2o (CVE-2023-41337)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
12/12/2023
Última modificación:
19/12/2023

Descripción

h2o es un servidor HTTP compatible con HTTP/1.x, HTTP/2 y HTTP/3. En la versión 2.3.0-beta2 y anteriores, cuando h2o está configurado para escuchar múltiples direcciones o puertos y cada uno de ellos usa diferentes servidores backend administrados por múltiples entidades, una entidad backend maliciosa que también tiene la oportunidad de observar o inyectar paquetes intercambiados entre el cliente y h2o pueden desviar las solicitudes HTTPS que van a otros backends y observar el contenido de esa solicitud HTTPS que se envía. El ataque implica que un cliente víctima intenta reanudar una conexión TLS y un atacante redirige los paquetes a una dirección o puerto diferente al previsto por el cliente. El atacante ya debe haber sido configurado por el administrador de h2o para actuar como backend de una de las direcciones o puertos que escucha la instancia de h2o. Los ID de sesión y los tickets generados por h2o no están vinculados a información específica de la dirección del servidor, el puerto o el certificado X.509 y, por lo tanto, es posible que un atacante fuerce la conexión de la víctima a reanudarse incorrectamente en una dirección de servidor o puerto diferente. en el que está escuchando la misma instancia de h2o. Una vez que una sesión TLS se dirige erróneamente para reanudarse a una dirección/puerto de servidor que está configurado para usar un servidor controlado por el atacante como backend, dependiendo de la configuración, las solicitudes HTTPS del cliente víctima pueden reenviarse al servidor del atacante. Una instancia H2O es vulnerable a este ataque solo si la instancia está configurada para escuchar diferentes direcciones o puertos usando la directiva de escucha en el nivel de host y la instancia está configurada para conectarse a servidores backend administrados por múltiples entidades. Hay un parche disponible en el commit 35760540337a47e5150da0f4a66a609fad2ef0ab. Como workaround, se pueden dejar de utilizar directivas de escucha a nivel de host en favor de las de nivel global.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:dena:h2o:*:*:*:*:*:*:*:* 2.2.6 (incluyendo)
cpe:2.3:a:dena:h2o:2.3.0:beta1:*:*:*:*:*:*
cpe:2.3:a:dena:h2o:2.3.0:beta2:*:*:*:*:*:*