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

Vulnerabilidad en la validación de la firma BLS en el método de biblioteca blst VerifyCompressed en Lotus (CVE-2021-21405)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/04/2021
Última modificación:
23/04/2021

Descripción

Lotus es una implementación del protocolo Filecoin escrito en Go. La validación de la firma BLS en lotus utiliza el método de biblioteca blst VerifyCompressed. Este método acepta firmas en 2 formas: "serialized" y "compressed", lo que significa que las firmas BLS se pueden proporcionar como cualquiera de las 2 matrices de bytes únicas. Las funciones de validación de bloques de Lotus realizan una verificación de unicidad en los bloques proporcionados. Dos bloques se consideran distintos si los CID de su encabezado de bloque no coinciden. El método CID para blockheader incluye el BlockSig del bloque. El resultado de estos problemas es que sería posible castigar a los mineros por bloques válidos, ya que hay dos CID de bloque válidos diferentes disponibles para cada bloque, aunque este debe ser único. Al cambiar de los enlaces `blst` basados ??en go a los enlaces en `filecoin-ffi`, las rutas de código ahora garantizan que todas las firmas estén comprimidas por tamaño y la forma en que se deserializan. Esto ocurrió en https://github.com/filecoin-project/lotus/pull/5393

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:filecoin:lotus:*:*:*:*:*:*:*:* 1.5.0 (excluyendo)