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 nas redes sociais da plataforma de segurança blockchain CertiK. A plataforma afirmou ter descoberto o bug e o reportou à equipe do Wormhole antes que pudesse ser explorado. 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 apoiadores do MOVE afirmam que é uma linguagem mais segura para escrever contratos inteligentes quando comparada ao Solidity do Ethereum ou outras alternativas.

O relatório da CertiK foi postado na forma de um vídeo. Ele afirmava que a falha "surgiu de uma implementação incorreta dos modificadores 'public(friend)' e 'entry' 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 'entry' 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. Supostamente, ela só deveria ser chamada por outras funções dentro do mesmo módulo ou por certas "entidades externas especificadas". No entanto, na versão da ponte estudada pela CertiK, a função foi modificada tanto pelo 'public(friend)' quanto pelo '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 criasse ou desbloqueasse tokens sem ter quaisquer depósitos reais os respaldando no lado do Aptos. Como resultado, o invasor poderia ter drenado até US$ 5 milhões em fundos da ponte, afirmou a CertiK.

A CertiK informou os membros da equipe do Wormhole sobre a falha em 5 de dezembro de 2023. Após investigar o relatório, a equipe desenvolveu e testou um patch para fechar a brecha de segurança e informou aos Guardiões do protocolo sobre o problema. Por meio de uma votação multissig, os Guardiões aprovaram o patch para ser implementado, e o contrato Aptos do protocolo foi atualizado para implementar o novo código. Uma vez relatada a falha, o processo de correção levou aproximadamente três horas, e a nova versão da ponte não está mais vulnerável a essa exploração.

Linha do tempo da exploração do Wormhole Aptos. Fonte: CertiK

Além de remover a palavra-chave 'entry' da função publish_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, efetivamente impedindo saques do Aptos de mais de US$ 1 milhão por dia. Isso foi feito para limitar as perdas em caso de futuras explorações. O uso atual está abaixo de US$ 1 milhão por dia, afirmou a CertiK, o que implica que o limite de taxa não deveria afetar a maioria dos usuários. 

Wormhole também realizou uma "análise retrospectiva" para determinar se algum fundo do usuário foi afetado pelo problema. Eles concluíram que nenhum fundo foi transferido ilicitamente e que os saldos dos usuários estavam seguros.

O Wormhole nem sempre conseguiu detectar falhas de segurança antes que fossem exploradas. Em 2022, perdeu mais de US$ 321 milhões quando um bug na parte Solana da ponte permitiu que um invasor criasse tokens não respaldados. No entanto, a equipe posteriormente corrigiu o bug e compensou os usuários. Em janeiro, o 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.