Vulnerabilidad en un mecanismo de middleware "MaxActiveRequests" en Blaze-core en Http4s. (CVE-2021-21294) (CVE-2021-21294)
Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
02/02/2021
Última modificación:
24/10/2022
Descripción
Http4s (http4s-blaze-server) es una interfaz Scala mínima e idiomática para servicios HTTP. Http4s anterior a versiones 0.21.17, 0.22.0-M2 y 1.0.0-M14, presentan una vulnerabilidad que puede conllevar a una denegación de servicio. Blaze-core, una biblioteca subyacente a http4s-blaze-server, acepta conexiones ilimitadas en su grupo de selectores. Esto tiene el efecto neto de amplificar la degradación en los servicios que no pueden manejar su carga de peticiones actual, ya que las conexiones entrantes aún se aceptan y agregan a una cola ilimitada. Cada conexión asigna un identificador de socket, lo que agota un recurso escaso del sistema operativo. Esto también puede confundir a los disyuntores de nivel superior que funcionan basándose en la detección de conexiones en fallo. http4s proporciona un mecanismo de middleware "MaxActiveRequests" general para limitar las conexiones abiertas, pero se aplica dentro del bucle de aceptación de Blaze, después de que se acepta la conexión y se abre el socket. Por lo tanto, el límite solo impide el número de conexiones que se pueden procesar simultáneamente, no el número de conexiones que se pueden mantener abiertas. En 0.21.17, 0.22.0-M2 y 1.0.0-M14, se agregó una nueva propiedad "maxConnections", con un valor predeterminado de 1024, al "BlazeServerBuilder". Establecer el valor en un número negativo restaura el comportamiento ilimitado, pero se desaconseja enérgicamente. El backend de NIO2 no respeta "maxConnections". Su uso ahora es obsoleto en http4s-0.21, y la opción se elimina por completo a partir de http4s-0.22. Existen varias posibles soluciones que se describen en el Aviso de GitHub referenciado GHSA-xhv5-w9c5-2r2w
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Puntuación base 2.0
5.00
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:typelevel:http4s:*:*:*:*:*:*:*:* | 0.21.17 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página