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

Vulnerabilidad en acepta conexiones en un grupo de subprocesos dedicado en la biblioteca blaze en blaze-core (CVE-2021-21293)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
02/02/2021
Última modificación:
25/10/2022

Descripción

blaze es una biblioteca de Scala para construir pipelines asincrónicos, con un enfoque en la E/S de red. Todos los servidores que ejecutan blaze-core anterior a versión 0.14.15 están afectados por una vulnerabilidad en la que la aceptación de una conexión ilimitada conduce al agotamiento del control de archivos. Blaze, acepta conexiones incondicionalmente en un grupo de subprocesos dedicado. 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. La gran mayoría de los usuarios afectados lo utilizan como parte de http4s-blaze-server versiones anteriores a 0.21.16 e incluyéndola. http4s proporciona un mecanismo 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 evita el número de conexiones que se pueden procesar simultáneamente, no el número de conexiones que se pueden mantener abiertas. El problema se solucionó en la versión 0.14.15 para "NIO1SocketServerGroup". Se agrega un parámetro "maxConnections", con un valor predeterminado de 512. Se rechazan las conexiones simultáneas más allá de este límite. Para ejecutar sin límites, lo cual no se recomienda, establezca un número negativo. El "NIO2SocketServerGroup" no tiene tal configuración y ahora está obsoleto. Existen varias posibles soluciones que se describen en el Aviso de GitHub referenciado GHSA-xmw9-q7x9-j5qc

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:typelevel:blaze:*:*:*:*:*:*:*:* 0.14.15 (excluyendo)