Desenvolvedores do Bitcoin Core divulgaram um bug de alta gravidade que poderia permitir que mineradores derrubassem remotamente alguns nós do Bitcoin.
Resumo
- O Bitcoin Core divulgou a CVE-2024-52911, afetando versões anteriores à 29.0, com nós mais antigos ainda expostos online.
- Os mineradores precisavam de blocos caros com prova de trabalho para acionar as quedas, o que tornou abusos no mundo real historicamente improváveis para atacantes.
- Cory Fields reportou o bug de forma privada em 2024, antes do Bitcoin Core 29.0 lançar o software corrigido.
O problema, registrado como CVE-2024-52911, afetou versões do Bitcoin Core após 0,14.0 e antes da 29.0. O bug foi corrigido no Bitcoin Core 29.0, que foi lançado em abril de 2025.
O Bitcoin Core tornou o problema público em 5 de maio de 2026, depois que a última linha de releases vulneráveis 28.x chegou ao fim de vida em 19 de abril.
Bug afetou validação de blocos
O problema envolveu o interpretador de scripts do Bitcoin Core durante a validação de blocos. O Bitcoin Core disse que um bloco especialmente construído poderia fazer um nó acessar memória depois que aqueles dados já haviam sido liberados.
Durante a validação, o Bitcoin Core pré-calcula os dados de entrada das transações e envia verificações de script para threads em segundo plano. Em alguns casos, um bloco inválido poderia destruir dados em cache enquanto outra thread ainda tentava lê-los.
O Bitcoin Core disse que isso poderia permitir que um atacante com prova de trabalho suficiente derrubasse os nós da vítima. Ele também disse que “é possível” que a queda pudesse apoiar execução remota de código, embora limites nos dados do bloco tornassem esse resultado “improvável”.
Ataque exigia mineração custosa
O ataque não era simples de executar. Um minerador precisaria produzir um bloco especialmente construído com prova de trabalho suficiente para alcançar o topo da cadeia.
Isso tornava o ataque caro porque tal bloco seria inválido. Ele não conseguiria ganhar uma recompensa normal de bloco, deixando o atacante gastando poder de hash sem coletar o pagamento habitual de mineração.
O Bitcoin Core não disse que o bug foi usado em ataques reais. O comunicado se concentrou na falha, na correção e no cronograma de divulgação.
O bug não alterou as regras de consenso do Bitcoin. Ele estava ligado ao tratamento de memória no software do Bitcoin Core, e não às regras que definem transações ou blocos válidos do Bitcoin.
Cory Fields reportou a falha
Cory Fields, da MIT Digital Currency Initiative, reportou o bug de forma privada em 2 de novembro de 2024. O Bitcoin Core disse que o relatório incluía uma prova de conceito e uma forma proposta de reduzir o risco.
Pieter Wuille aplicou uma correção encoberta quatro dias depois via PR 31112. A solicitação foi mesclada em 3 de dezembro de 2024, antes do Bitcoin Core 29.0 ser lançado com a correção em abril de 2025.
O comunicado seguiu a política de divulgação do Bitcoin Core para bugs de alta gravidade. A política afirma que problemas de alta gravidade são divulgados após o último release afetado chegar ao fim de vida.
Além disso, operadores de nós que usam versões do Bitcoin Core anteriores à 29.0 ainda enfrentam o bug antigo. O Bitcoin Core não faz atualização automática, então os usuários precisam instalar versões mais novas manualmente.
Um relatório anterior sobre riscos de descentralização em blockchain citou uma pesquisa que apontou que 21% dos nós do Bitcoin executavam um software do Bitcoin Core desatualizado em junho de 2021. Esse contexto mostra por que versões antigas do cliente podem continuar sendo uma preocupação de segurança bem depois da chegada das correções.