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

Vulnerabilidad en gpRC (CVE-2023-33953)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
09/08/2023
Última modificación:
17/08/2023

Descripción

gRPC contiene una vulnerabilidad que permite que los errores de contabilidad de la tabla hpack puedan provocar desconexiones no deseadas entre clientes y servidores en casos excepcionales/ Se han encontrado tres vectores que permiten los siguientes ataques DOS:<br /> <br /> - Memoria intermedia ilimitada en el analizador sintáctico HPACK<br /> - Consumo ilimitado de CPU en el analizador sintáctico HPACK<br /> <br /> El consumo ilimitado de CPU se debe a una copia que se producía por bloque de entrada en el analizador sintáctico, y dado que podría ser ilimitada debido al error de copia de memoria, acabamos con un bucle de análisis sintáctico O(n^2), con n seleccionado por el cliente.<br /> <br /> El error de memoria intermedia no limitada:<br /> <br /> - La comprobación del límite de tamaño de la cabecera estaba detrás del código de lectura de cadenas, por lo que necesitábamos primero almacenar en búfer hasta una cadena de 4 gigabytes antes de rechazarla como más larga de 8 o 16kb.<br /> - Las varints HPACK tienen una peculiaridad de codificación por la que se puede añadir un número infinito de ceros al principio de un entero. El analizador hpack de gRPC necesitaba leerlos todos antes de concluir el análisis.<br /> - La comprobación de desbordamiento de metadatos de gRPC se realizaba por fotograma, por lo que la siguiente secuencia de fotogramas podía causar un buffering infinito: CABECERAS: contiene un: 1 CONTINUACIÓN: contiene un: 2 CONTINUACIÓN: contiene un: 3 etc?

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:grpc:grpc:*:*:*:*:*:-:*:* 1.53.2 (excluyendo)
cpe:2.3:a:grpc:grpc:*:*:*:*:*:-:*:* 1.54.0 (incluyendo) 1.54.3 (excluyendo)
cpe:2.3:a:grpc:grpc:*:*:*:*:*:-:*:* 1.55.0 (incluyendo) 1.55.2 (excluyendo)
cpe:2.3:a:grpc:grpc:*:*:*:*:*:-:*:* 1.56.0 (incluyendo) 1.56.2 (excluyendo)


Referencias a soluciones, herramientas e información