Vulnerabilidad en una inclusión en la cadena de "AttesterSlashing" o "ProposerSlashing" en Lodestar (CVE-2022-29219)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-190
Desbordamiento o ajuste de enteros
Fecha de publicación:
24/05/2022
Última modificación:
07/06/2022
Descripción
Lodestar es una implementación de TypeScript de la especificación del Consenso de Ethereum. versiones anteriores a 0.36.0, se presenta una posible división del consenso debido a una inclusión en la cadena de "AttesterSlashing" o "ProposerSlashing" maliciosamente diseñados. Debido a que los desarrolladores representan valores "uint64" como "números" nativos de javascript, se presenta un problema cuando esas variables con valores "uint64" grandes (mayores de 2^53) son incluidas en la cadena. En esos casos, Lodestar puede visualizar valid_"AttesterSlashing" o "ProposerSlashing" como inválidos, debido a errores de redondeo en valores "numéricos" grandes. Esto causa una división del consenso, donde los nodos de Lodestar son bifurcados fuera de la red principal. Del mismo modo, Lodestar puede considerar inválidos los "ProposerSlashing" como válidos, incluyendo así en bloques propuestos que serán considerados no válidos por la red. La versión 0.36.0 contiene una corrección para este problema. Como mitigación, use "BigInt" para representar los valores "Slot" y "Epoch" en los objetos "AttesterSlashing" y "ProposerSlashing". "BigInt" es demasiado lento para ser usado en todos los casos de "Slot" y "Epoch", por lo que puede usarse cuidadosamente "BigInt" sólo cuando sea necesario para el consenso
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:chainsafe:lodestar:*:*:*:*:*:*:*:* | 0.36.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



