Uma falha de segurança na ponte Wormhole na rede Aptos poderia ter resultado em perdas no valor de US$ 5 milhões se não tivesse sido descoberta, de acordo com uma postagem na mídia social da plataforma de segurança blockchain CertiK. A plataforma alegou ter descoberto o bug e relatado à equipe do Wormhole antes que pudesse ser explicado. A falha foi corrigida e a ponte não está mais vulnerável.
Fonte: CertiK.
Aptos é uma rede blockchain que utiliza a linguagem de programação MOVE, originalmente desenvolvida pelo Facebook para o projeto Libra. Os defensores do MOVE afirmam que é uma linguagem mais segura para escrever contratos inteligentes quando comparada ao Solidity da Ethereum ou outras alternativas.
O relatório CertiK foi postado em forma de vídeo. Alegou que a falha “surgiu de uma implementação incorreta dos modificadores ‘público (amigo)’ e ‘entrada’ na linguagem de programação MOVE”. O modificador ‘public(friend)’ permite que uma função seja chamada por outras funções dentro do mesmo módulo ou por contas externas especificadas em uma “lista de amigos”, mas não por outros chamadores. Por outro lado, o modificador ‘entrada’ especifica que uma função pode ser chamada por qualquer conta externa.
A ponte continha uma função chamada ‘publish_event”, que era usada para anunciar eventos como transferências de tokens. Supunha-se que só poderia ser chamado por outras funções dentro do mesmo módulo ou por certas “entidades externas especificadas”. No entanto, na versão da ponte que CertiK estudou, a função foi modificada tanto por ‘public(friend)’ quanto por ‘entry’. Isso possibilitou que qualquer pessoa chamasse ‘publish_event”, mesmo que não fosse um chamador aprovado.
Devido a essa falha, um invasor poderia ter criado transações falsas que pareciam mover tokens de uma conta para outra, mesmo que nenhum token real estivesse sendo movido. Esses “eventos” poderiam ter feito com que a versão Ethereum da ponte cunhasse ou desbloqueasse tokens sem ter nenhum depósito real para apoiá-los no lado do Aptos. Como resultado, o invasor poderia ter drenado até US$ 5 milhões em fundos da ponte, afirmou CertiK.
CertiK informou aos membros da equipe Wormhole sobre a falha em 5 de dezembro de 2023. Depois de investigar o relatório, a equipe desenvolveu e testou um patch para fechar a brecha de segurança e informou os Guardiões do protocolo sobre o problema. Por meio de uma votação com múltiplas assinaturas, os Guardiões aprovaram o patch a ser implementado e o contrato Aptos do protocolo foi atualizado para implementar o novo código. Depois que a falha foi relatada, o processo de correção demorou aproximadamente três horas, e a nova versão da ponte não está mais vulnerável a esta exploração.
Linha do tempo de exploração do Wormhole Aptos. Fonte: CertiK.
Além de remover a palavra-chave ‘entrada’ da função subscribe_event, o novo patch também restringiu o valor dos “limites de taxa do governador” no Aptos de US$ 5 milhões para US$ 1 milhão, evitando efetivamente saques do Aptos superiores a US$ 1 milhão por dia. Isso foi feito para limitar as perdas no caso de uma exploração futura. O uso atual está abaixo de US$ 1 milhão por dia, afirmou CertiK, o que implica que o limite de taxa não deve afetar a maioria dos usuários.
A Wormhole também realizou uma “análise retrospectiva” para determinar se os fundos dos usuários foram afetados pelo problema. Concluíram que nenhum dinheiro havia sido transferido ilicitamente e que os saldos dos usuários estavam seguros.
O Wormhole nem sempre conseguiu detectar falhas de segurança antes de serem exploradas. Em 2022, perdeu mais de US$ 321 milhões quando um bug na parte Solana da ponte permitiu que um invasor cunhasse tokens não garantidos. No entanto, a equipe posteriormente corrigiu o bug e compensou os usuários. Em janeiro, a Wormhole recuperou US$ 1 bilhão em valor total bloqueado pela primeira vez desde o incidente, mostrando que alguns usuários sentem que suas práticas de segurança melhoraram.
Relacionado: Bugs no fork da Gains Network permitem que os traders lucrem 900% em cada negociação: Relatório