Divulgação de DoS de memória usando enormes mensagens INV

MEDIA TEAM

Um nó pode ser forçado a alocar uma quantidade significativa de memória ao receber uma mensagem especialmente criada.
INV mensagem. Isto era particularmente um problema para nós com pouca memória disponível ou com um grande número de conexões.

Esta questão é considerada Médio gravidade.

Detalhes

Um INV mensagem preenchida com 50.000 itens de bloqueio pode causar 50.000 getheaders respostas a serem enviadas em um único ProcessMessages() chamar. Cada resposta contém um localizador e tem cerca de 1 kB. Tudo seria colocado no buffer de envio de uma só vez. O invasor pode simplesmente se recusar a receber dados para evitar que o buffer de 50 MB seja esgotado.

John Newbery abriu RP #18962 para corrigir esse problema, pretextando um ganho de largura de banda ao enviar um único GETHEADERS por recebido INV.

Atribuição

Créditos a John Newbery por encontrar esse bug, divulgá-lo de forma responsável e corrigi-lo.

Linha do tempo

  • 2020-05-08 John Newbery relata sua descoberta por e-mail
  • 2020-05-12 John Newbery abre #18962
  • 14/05/2020 #18962 foi mesclado
  • 2020-06-03 Bitcoin Core versão 0.20.0 é lançada com uma correção
  • 2021-09-13 A última versão vulnerável do Bitcoin Core (0.19.x) chega ao EOL
  • 2024-07-03 Divulgação pública.
Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *