Depois do Bitcoin Core 0.12.0 e antes do Bitcoin Core 0.15.0, um nó poderia receber spam com cabeçalhos de dificuldade mínima, que poderiam ser aproveitados para travá-lo pelo OOM.
Esta questão é considerada Médio gravidade.
Detalhes
Antes da introdução de pré-sincronização de cabeçalhosos nós dependiam exclusivamente de pontos de verificação para evitar spam por cabeçalhos de baixa dificuldade.
No Bitcoin Core 0.12.0, uma verificação de cabeçalhos bifurcados antes da altura do último ponto de verificação ser movida após armazenar o cabeçalho em mapBlockIndex
. Isso permitiu que um invasor aumentasse o mapa ilimitadamente enviando spam para cabeçalhos cujo pai é o bloco genesis (que só precisa de dificuldade 1 para ser criado), já que tais blocos contornavam a lógica do ponto de verificação.
Atribuição
Créditos a Cory Fields por encontrar e divulgar o bug de forma responsável.
Linha do tempo
- 08/08/2017 Cory Fields relata o bug em particular
- 11/08/2017 Pieter Wuille abre RP #11028 para consertar isso
- 14/08/2017 PR #11028 foi mesclado
- 14/09/2017 Bitcoin Core versão 0.15.0 é lançada com uma correção
- 03/10/2018 A última versão vulnerável do Bitcoin Core (0.14.3) chega ao fim da vida útil
- 2024-07-03 Divulgação pública.