O Bitcoin Core manteve uma lista ilimitada de endereços IP banidos e realizou uma operação quadrática nele. Isso pode levar a uma falha de OOM e CPU Dos.
Esta questão é considerada Alto gravidade.
Detalhes
Bitcoin Core manteve uma lista de endereços IP banidos. Esta lista não era limitada e poderia ser manipulada por um adversário. Adicionar novas entradas a esta lista foi particularmente barato para um invasor ao considerar o IPV6. Além disso, ao receber um GETADDR
mensagem, o Bitcoin Core verificaria toda a lista de banimentos para cada endereço a ser retornado (até 2.500).
Atribuição
Calin Culianu foi o primeiro a divulgá-lo com responsabilidade. Mais tarde, Calin divulgou publicamente o bug em um comentário de relações públicas.
No mesmo dia, Jason Cox, do Bitcoin ABC, enviou um e-mail ao projeto Bitcoin Core para compartilhar o mesmo relatório que eles também receberam.
Linha do tempo
- 2020-06-08 Calin Culianu relata em particular o bug no projeto Bitcoin Core
- 2020-06-08 Jason Cox compartilha privadamente o (mesmo) relatório enviado ao Bitcoin ABC com Bitcoin Core
- 2020-06-08 Calin Culianu divulga publicamente a vulnerabilidade no PR original que introduziu o comportamento quadrático
- 2020-06-09 Pieter Wuille abre relações públicas #19219 que corrige o uso ilimitado de memória e o comportamento quadrático
- 2020-06-16 Luke Dashjr recebe CVE-2020-14198 para esta vulnerabilidade após sua solicitação
- 2020-07-07 O PR de Pieter é fundido
- 2020-08-01 Bitcoin Core 0.20.1 é lançado com a correção
- 2021-01-14 Bitcoin Core 0.21.0 é lançado com a correção
- 2022-04-25 A última versão vulnerável do Bitcoin Core (0.20.0) chega ao EOL
- 2024-07-03 (Oficial) Divulgação Pública