PT-2021-14482 · Blst+2 · Blst+2

Dignifiedquire

·

Publicado

2021-04-15

·

Atualizado

2024-08-21

·

CVE-2021-21405

CVSS v3.1

7.5

Alta

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Nome do software vulnerável e versões afetadas
Lotus (versões afetadas não especificadas)
Descrição
O problema diz respeito à validação de assinaturas BLS no Lotus, que utiliza o método VerifyCompressed da biblioteca blst. Esse método aceita assinaturas em dois formatos: serializadas e compactadas, permitindo que as assinaturas BLS sejam fornecidas como qualquer uma das duas matrizes de bytes distintas. As funções de validação de blocos do Lotus realizam uma verificação de exclusividade nos blocos fornecidos, considerando dois blocos distintos se os CIDs de seus cabeçalhos não corresponderem. O método CID para o cabeçalho do bloco inclui o BlockSig do bloco. Como resultado, seria possível penalizar mineradores por blocos válidos, já que existem dois CIDs de bloco válidos diferentes disponíveis para cada bloco, embora este deva ser único.
Recomendações
Ao mudar das ligações blst baseadas em go para as ligações em filecoin-ffi, os caminhos de código agora garantem que todas as assinaturas sejam compactadas por tamanho e pela forma como são deserializadas. Essa alteração ocorreu em https://github.com/filecoin-project/lotus/pull/5393.
No momento, não há informações sobre uma versão mais recente que contenha uma correção para essa vulnerabilidade.

Exploit

Improper Verification of Cryptographic Signature

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2021-21405
GHSA-4G52-PQCJ-PHVH
GO-2022-0905

Produtos afetados

Lotus
Blst
Filecoin-Ffi