Divulgação de DoS significativo devido ao tratamento órfão

MEDIA TEAM

Um nó pode ficar paralisado por horas ao processar os órfãos de uma transação não confirmada especialmente criada.

Esta questão é considerada Alto gravidade.

Detalhes

Depois de aceitar uma transação em seu mempool, o nó percorreria seu cache de transações órfãs para descobrir se essa nova transação aceita possibilita a aceitação de alguma. Essa busca era quadrática: para cada saída na transação recém-aceita, ela passaria por todas as transações órfãs armazenadas em cache (limitado a 100). Ao criar especialmente as transações órfãs para serem inválidas, mas caras para validar, um nó pode ficar paralisado por várias horas.

A barraca foi consertada por Pieter Wuille em RP #15644
interrompendo a resolução órfã para processar novas mensagens quando uma correspondência for encontrada (independentemente de o órfão ser válido ou não).

Atribuição

Créditos a sec.eine por divulgar o bug de forma responsável e fornecer feedback sobre a correção.

Linha do tempo

  • 19/03/2019 sec.eine relata o problema a Greg Maxwell por e-mail
  • 21/03/2019 Greg Maxwell responde com informações sobre o patch proposto
  • 22/03/2019 sec.eine dá feedback sobre o patch (“parece sólido e (..) não atrai atenção”)
  • 22/03/2019 Pieter Wuille abre PR #15644
  • 01/04/2019 PR #15644 foi mesclado
  • 18/05/2019 Bitcoin Core versão 0.18.0 é lançada com uma correção
  • 2020-07-22 O problema é parcialmente divulgado durante um clube de revisão de relações públicas
  • 2020-08-01 A última versão vulnerável do Bitcoin Core (0.17.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 *