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
| Vetor | AV: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
Produtos afetados
Lotus
Blst
Filecoin-Ffi