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

Vulnerabilidad en peticiones de conexión P2P en RemovePeer en Tendermint (CVE-2020-5303)

Gravedad CVSS v3.1:
BAJA
Tipo:
CWE-787 Escritura fuera de límites
Fecha de publicación:
10/04/2020
Última modificación:
30/06/2020

Descripción

Tendermint versiones anteriores a 0.33.3, 0.32.10 y 0.31.12, presenta una vulnerabilidad de denegación de servicio. Tendermint no limita el número de peticiones de conexión P2P. Para cada conexión p2p, asigna XXX bytes. Aun cuando esta memoria es de tipo garbage collected una vez que se termina la conexión (debido a IP duplicada o que alcanza un número máximo de peers entrantes), los picos de memoria temporales pueden conllevar a excepciones OOM (Fuera de la Memoria). Adicionalmente, Tendermint no recupera el "activeID" de un peer después de que es eliminado en el reactor Mempool. Esto no sucede todo el tiempo. Solo se presenta cuando se produce un fallo de conexión (por cualquier motivo) antes de que el Peer sea creado y agregado a todos los reactores. RemovePeer, por lo tanto, es llamado antes "AddPeer", lo que conlleva a una memoria creciente siempre (mapa "activeIDs"). El mapa activeIDs presenta un tamaño máximo de 65535 y el nodo entrará en pánico si este mapa alcanza el máximo. Un atacante puede crear muchos intentos de conexión (explotar por encima de la denegación de servicio), lo que finalmente conllevará al pánico del nodo. Estos problemas están parcheados en Tendermint versiones 0.33.3 y 0.32.10

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:tendermint:tendermint:*:*:*:*:*:*:*:* 0.31.12 (excluyendo)
cpe:2.3:a:tendermint:tendermint:*:*:*:*:*:*:*:* 0.32.0 (incluyendo) 0.32.10 (excluyendo)
cpe:2.3:a:tendermint:tendermint:*:*:*:*:*:*:*:* 0.33.0 (incluyendo) 0.33.3 (excluyendo)