Vulnerabilidad en swift-nio-http2 (CVE-2022-24667)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-190
Desbordamiento o ajuste de enteros
Fecha de publicación:
09/02/2022
Última modificación:
22/02/2022
Descripción
Un programa usando swift-nio-http2 es vulnerable a un ataque de denegación de servicio, causado por un compañero de red que envía un bloque de encabezado codificado con HPACK especialmente diseñado. Este ataque afecta a todas las versiones de swift-nio-http2 desde 1.0.0 hasta 1.19.1. Se presenta una serie de errores de implementación en el análisis de bloques de encabezados codificados con HPACK que permiten que bloques de encabezados HPACK diseñados de forma maliciosa causen bloqueos en los procesos que usan swift-nio-http2. Cada uno de estos bloqueos son desencadenados en lugar de un desbordamiento de enteros. Un bloque de encabezado HPACK malicioso podría enviarse en cualquiera de las tramas que llevan HPACK en una conexión HTTP/2 (HEADERS y PUSH_PROMISE), en cualquier posición. El envío de un bloque de encabezado HPACK no requiere ningún permiso especial, por lo que cualquier compañero de conexión HTTP/2 puede enviar uno. Para los clientes, esto significa que cualquier servidor al que sean conectados puede lanzar este ataque. Para los servidores, cualquier persona a la que permitan conectarse puede lanzar este ataque. El ataque es de bajo esfuerzo: son necesarios muy pocos recursos para enviar un bloque de campo apropiadamente diseñado. El impacto en la disponibilidad es alto: la recepción de una trama que lleve este bloque de campo bloquea inmediatamente el servidor, cayendo todas las conexiones en vuelo y causando la necesidad de reiniciar el servicio. Es sencillo para un atacante enviar repetidamente bloques de campo apropiadamente diseñados, por lo que atacantes necesitan muy pocos recursos para lograr una denegación de servicio sustancial. El ataque no presenta ningún riesgo de confidencialidad o integridad en sí mismo: swift-nio-http2 está analizando el bloque de campo en código seguro para la memoria y el bloqueo es desencadenado en lugar de un desbordamiento de enteros. Sin embargo, los bloqueos repentinos de procesos pueden conllevar a violaciones de invariantes en los servicios, por lo que es posible que este ataque pueda ser usado para desencadenar una condición de error que tenga riesgos de confidencialidad o integridad. El riesgo puede mitigarse si puede evitarse que los compañeros que no son confiables sean comunicados con el servicio. Esta mitigación no está disponible para muchos servicios. El problema es corregido al reescribir el código de análisis para manejar correctamente todas las condiciones de la función. El problema principal fue encontrado por el fuzzing automatizado por oss-fuzz, pero varios errores asociados en el mismo código fueron encontrados por la auditoría de código y corregidos al mismo tiempo
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:apple:swiftnio_http\/2:*:*:*:*:*:swift:*:* | 1.0.0 (incluyendo) | 1.19.2 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



