Uma falha no Eclair, uma implementação da Lightning Network do Bitcoin, podia permitir que um par malicioso bloqueasse um nó sem atualização, sem financiar um canal nem pagar uma taxa na blockchain. Os nós com a versão v0.14.0 ou anterior eram afetados. Numa prova de conceito em regtest, o investigador Erick Cestari esgotou uma heap Java de 4 GB em cerca de 47 minutos e 43 segundos, após a acumulação de 217,623 registos de canais na base de dados. Os registos permaneceram no disco, fazendo com que o nó voltasse a ficar sem memória durante o arranque.
Porque é importante
O Eclair limitava o número de canais pendentes que cada par podia abrir, mas verificações inconsistentes dos identificadores temporários e definitivos dos canais faziam com que o contador subestimasse os canais sem financiamento. Um atacante podia acumular pedidos guardados, impondo custos de memória e de base de dados ao nó. O ataque continuava a exigir recursos computacionais e tráfego de rede, mas não os BTC normalmente necessários para financiar um canal.
A prova de conceito demonstra uma falha persistente de disponibilidade num nó vulnerável, não uma exploração em ambiente real nem o número de operadores afetados. O tempo até ao bloqueio foi medido em laboratório, não sendo uma referência universal. A falha foi corrigida na v0.14.1, lançada em julho antes da divulgação pública.
Impacto no mercado
A descoberta diz respeito à disponibilidade dos nós Lightning, não a uma perda de fundos demonstrada. Uma falha distinta na abertura de canais, também corrigida na v0.14.1, deixava processos órfãos a consumir recursos; o nó testado recuperou dessa falha após uma desconexão ou um reinício. Essa recuperação não se aplica à acumulação persistente de registos na base de dados.
A ACINQ recomenda a atualização para a v0.14.3 devido a outras vulnerabilidades de segurança. Os operadores cuja base de dados já esteja sobrecarregada enfrentam uma tarefa de recuperação distinta: Cestari apontou como possíveis medidas aumentar a heap ou remover manualmente os registos de canais falsos. Reiniciar repetidamente o nó não elimina esses registos.
Perguntas frequentes
-
Porque pode o reinício de um nó Eclair afetado não restabelecer o serviço?
Os registos de canais sem financiamento permanecem na base de dados. O Eclair pode voltar a esgotar a memória ao recarregá-los durante o arranque.
-
O ataque de bloqueio persistente exige financiar um canal Lightning do Bitcoin?
Não. Um par malicioso podia acumular pedidos de abertura de canais guardados sem difundir uma transação de financiamento nem pagar uma taxa na blockchain, embora o ataque exigisse recursos computacionais e tráfego de rede.
-
Que versões do Eclair eram afetadas e qual corrigiu a falha?
A falha de bloqueio persistente afetava nós acessíveis com a versão v0.14.0 ou anterior. Foi corrigida na v0.14.1, lançada em julho antes da divulgação pública.
-
O que demonstrou a prova de conceito relativa ao Eclair?
Em regtest, esgotou uma heap Java de 4 GB após cerca de 47 minutos e 43 segundos, com 217,623 registos de canais acumulados na base de dados. Não demonstrou exploração em ambiente real nem um tempo de falha universal.
-
Porque recomenda a ACINQ a v0.14.3 se a v0.14.1 corrigiu estas falhas de negação de serviço?
A v0.14.3 corrige outras vulnerabilidades de segurança. A correção das duas falhas de negação de serviço na v0.14.1 não constitui, por si só, uma recomendação de segurança atual e completa.