Vulnerabilidad en el cuerpo HTTP SwiftNIO Extras (CVE-2022-3252)
Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
21/09/2022
Última modificación:
26/09/2022
Descripción
Una Detección inapropiada de la descompresión completa del cuerpo HTTP SwiftNIO Extras proporciona un par de ayudantes para descomprimir de forma transparente los cuerpos de petición o respuesta HTTP recibidos. Estos dos objetos (HTTPRequestDecompressor y HTTPResponseDecompressor) fallaban al detectar cuando el cuerpo descomprimido era considerado completo. Si eran añadidos datos basura al cuerpo del mensaje HTTP, el código intentaba repetidamente descomprimir estos datos y fallaba. Esto conllevaba a un bucle infinito que no avanzaba, conllevando a un bloqueo del sistema y una denegación de servicio. Este problema puede ser provocado por cualquier atacante capaz de enviar un mensaje HTTP comprimido. Lo más común es que trate de servidores HTTP, ya que los mensajes HTTP comprimidos no pueden ser negociados para peticiones HTTP, pero es posible que los usuarios hayan configurado la descompresión para peticiones HTTP también. El ataque es de bajo esfuerzo, y es probable que sea alcanzado sin requerir ningún privilegio o acceso al sistema. El impacto en la disponibilidad es alto: el proceso es convertido inmediatamente en no disponible pero no es bloqueado inmediatamente, lo que significa que es posible que el proceso permanezca en este estado hasta que un administrador intervenga o sea disparado un interruptor automático. Si no es controlado, este problema agotará muy lentamente los recursos de memoria debido a una asignación repetida de búferes, pero éstos no son escritos, por lo que es posible que los procesos no terminen durante bastante tiempo. Este riesgo puede mitigarse al eliminar la descompresión transparente de mensajes HTTP. El problema es corregido al detectar correctamente la terminación del cuerpo comprimido según lo informado por zlib y rechazando la descompresión de más datos. El problema fue encontrado por Vojtech Rylko (https://github.com/vojtarylko) y reportado públicamente en GitHub
Impacto
Puntuación base 3.x
7.50
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:apple:swift-nio-extras:*:*:*:*:*:*:*:* | 1.9.2 (excluyendo) | |
cpe:2.3:a:apple:swift-nio-extras:*:*:*:*:*:*:*:* | 1.10.0 (incluyendo) | 1.10.3 (excluyendo) |
cpe:2.3:a:apple:swift-nio-extras:*:*:*:*:*:*:*:* | 1.11.0 (incluyendo) | 1.14.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página