Os desenvolvedores do Bitcoin Core historicamente divulgaram apenas 10 vulnerabilidades afetando versões mais antigas de software, conforme relatado pela Bitcoin Optech. As vulnerabilidades, corrigidas em versões mais recentes, podem ter permitido vários ataques a nós que executam versões desatualizadas do Bitcoin Core.
As vulnerabilidades são relevantes, dado que os desenvolvedores do Bitcoin Core introduziram recentemente um nova política de divulgação de segurança para melhorar a transparência e a comunicação sobre vulnerabilidades. Historicamente, o projeto enfrentou críticas por divulgação pública inadequada de bugs críticos de segurança, levando a uma percepção de que o Bitcoin Core está livre de bugs.
O desenvolvedor do Libbitcoin, Eric Voskuil, escreveu, em uma mensagem para a lista de discussão do Bitcoin, que essa percepção é enganosa e potencialmente perigosa, pois subestima os riscos de executar versões desatualizadas de software.
Vulnerabilidades ativas do nó Bitcoin
CriptoSlate analisou nós ativos de Bitcoin para identificar quantos estão atualmente vulneráveis a cada vetor de ataque. Aproximadamente 787 (5,94%) de 14.001 nós executam versões anteriores à 0.21.0.
A rede permanece segura e resistente a quaisquer ataques significativos. No entanto, esse número é significativo o suficiente para ser considerado um problema que a comunidade Bitcoin pode precisar resolver. Esforços podem ser feitos para encorajar esses operadores de nó a atualizar para versões mais recentes para aprimorar a segurança geral, eficiência e prontidão futura da rede Bitcoin.
Embora não seja um problema crítico imediato, é, sem dúvida, uma preocupação que merece atenção. Não é uma ameaça existencial ao Bitcoin, pois a maior parte da rede ainda executa software atualizado. No entanto, representa uma parte não trivial da rede que pode causar problemas ou ser explorada em certas circunstâncias. Indica a necessidade de melhor comunicação e incentivos dentro da comunidade Bitcoin para encorajar atualizações mais frequentes.
Riscos para nós ativos de Bitcoin
Vulnerabilidade | Versões afetadas | Nós Vulneráveis |
---|---|---|
Execução remota de código devido a um bug no miniupnpc (CVE-2015-6031) | Antes de 0.11.1 | 22 |
Falha de nó DoS de vários pares com mensagens grandes (CVE-2015-3641) | Antes de 0.10.1 | 5 |
Censura de transações não confirmadas | Antes de 0.21.0 | 787 |
Lista de banimentos não vinculados CPU/memória DoS (CVE-2020-14198) | Antes de 0.20.1 | 185 |
Netsplit devido a ajuste excessivo de tempo | Antes de 0.21.0 | 787 |
CPU DoS e travamento do nó devido ao tratamento de órfãos | Antes de 0.18.0 | 70 |
Memória DoS de grandes mensagens inv | Antes de 0.20.0 | 182 |
DoS de memória usando cabeçalhos de baixa dificuldade | Antes de 0.15.0 | 29 |
DoS que desperdiça CPU devido a solicitações malformadas | Antes de 0.20.0 | 182 |
Falha relacionada à memória em tentativas de analisar URIs BIP72 | Antes de 0.20.0 | 182 |
Conforme a divulgação, a vulnerabilidade mais disseminada afetou versões anteriores à 0.21.0, potencialmente impactando 787 nós. Essa falha pode permitir a censura de transações não confirmadas e causar netsplits devido a ajustes excessivos de tempo.
Três vulnerabilidades separadas afetaram versões anteriores a 0.20.0, cada uma potencialmente impactando 182 nós. Elas incluíam um DoS de memória de grandes mensagens inv, um DoS de desperdício de CPU de solicitações malformadas e uma falha relacionada à memória ao analisar URIs BIP72.
Uma vulnerabilidade DoS de CPU/memória de lista de banimento não vinculada (CVE-2020-14198) afetou versões anteriores à 0.20.1, potencialmente colocando 185 nós em risco. Versões anteriores eram suscetíveis a outros ataques, como um DoS de CPU e travamento de nó devido ao tratamento de órfãos (antes da 0.18.0, afetando 70 nós) e um DoS de memória usando cabeçalhos de baixa dificuldade (antes da 0.15.0, impactando 29 nós).
As vulnerabilidades mais antigas divulgadas incluíam um bug de execução remota de código no miniupnpc (CVE-2015-6031) afetando versões anteriores à 0.11.1 e um DoS de travamento de nó de mensagens grandes (CVE-2015-3641) em versões anteriores à 0.10.1. Elas afetaram 22 e 5 nós, respectivamente, indicando que muito poucos ainda estão executando esse software desatualizado.
Nova política de divulgação do desenvolvedor Bitcoin
O nova política categoriza vulnerabilidades em quatro níveis de gravidade: baixo, médio, alto e crítico. Bugs de baixa gravidade, que são difíceis de explorar ou têm impacto mínimo, serão divulgados duas semanas após o lançamento de uma versão corrigida, com um pré-anúncio feito simultaneamente.
Bugs de média e alta gravidade, que têm impactos mais significativos, serão divulgados duas semanas após a última versão afetada atingir seu fim de vida (EOL), normalmente um ano após a versão corrigida ser lançada pela primeira vez. Um pré-anúncio será feito duas semanas antes da divulgação. Bugs críticos que ameaçam a integridade da rede exigirão um procedimento de divulgação ad-hoc.
A política será implementada gradualmente. Todas as vulnerabilidades corrigidas nas versões 0.21.0 e anteriores do Bitcoin Core serão divulgadas imediatamente. Em julho, as vulnerabilidades corrigidas na versão 22.0 serão divulgadas, seguidas pelas corrigidas na versão 23.0 em agosto. Esse processo continuará até que todas as versões EOL tenham sido abordadas.
Esta iniciativa visa definir expectativas claras para pesquisadores de segurança, incentivando-os a encontrar e divulgar vulnerabilidades de forma responsável. Ao disponibilizar bugs de segurança para um grupo mais amplo de colaboradores, a política busca prevenir problemas futuros e aprimorar a segurança geral da rede Bitcoin.
De acordo com a Bitcoin Development Mailing List, a adoção gradual da política permitirá que a comunidade se ajuste e forneça feedback sobre seu impacto.
Os operadores de nós que ainda usam versões afetadas são fortemente aconselhados a atualizar para a versão mais recente para mitigar esses riscos potenciais.