Uma falha no Radix Engine permitiu a um atacante levantar cerca de $1,26 milhões em 26 transações a 31 de agosto, incluindo 458.915 USDC, 72.420 USDT, 61,08 ETH, 6,35 Bitcoin wrapped, 536,16 SOL e 32,91 BNB. O atacante também retirou 13.000 XRD para pagar as taxas de transação. Mais tarde, os validadores interromperam a blockchain Radix durante mais de 10 dias, depois de os investigadores determinarem que o defeito podia afetar qualquer vault, e não apenas as contas visadas no exploit.
Porque é importante
A RDX Works introduziu o defeito durante uma limpeza do código do Radix Engine, em junho de 2023. Esta é a camada de execução responsável por processar transações e impor a propriedade dos ativos. O bug alterou a forma como o engine tratava as referências a vaults, permitindo que código de smart contracts criado especificamente para o efeito passasse o vault de outro utilizador para funções normais de levantamento sem verificar devidamente os limites de propriedade.
Isto criou uma falha ao nível do protocolo, e não um problema numa única aplicação. O atacante transferiu os ativos roubados através da Hyperlane para Ethereum, BNB Chain e Solana, vendendo-os depois por ETH. A Hyperlane funcionou como previsto, porque os ativos já tinham sido levantados da Radix antes de a bridge ser utilizada.
Impacto no mercado
O roubo direto subestimou a exposição potencial. Os investigadores da Radix concluíram que contas de utilizadores, aplicações e liquidity pools podiam estar vulneráveis. Seguiram-se perdas secundárias quando os ativos transferidos para outras redes foram removidos de liquidity pools, distorcendo os preços e permitindo que outra conta extraísse milhões de XRD.
A falha também tinha passado pela auditoria independente de 2024 da Zellic ao protocolo Radix, incluindo o kernel do engine que continha o defeito. Os validadores colocaram uma quantidade suficiente de stake offline para bloquear o consenso, enquanto os programadores adicionavam verificações contra referências não autorizadas a vaults. As transações dos utilizadores foram retomadas a 11 de setembro. A Radix afirmou que está a adicionar testes de regressão, a reforçar as revisões de segurança e a formalizar o processo de emergência utilizado para restabelecer a segurança da rede.
Perguntas frequentes
-
Quanto foi retirado dos vaults visados no exploit da Radix?
O atacante levantou ativos no valor de cerca de $1,26 milhões em 26 transações, além de 13.000 XRD usados para pagar taxas de transação.
-
O que causou a falha de autorização do Radix Engine?
Uma refatoração em junho de 2023 alterou a forma como o engine tratava as referências a vaults. O código de smart contracts podia passar o vault de outro utilizador para funções de levantamento sem uma verificação adequada da propriedade.
-
Porque é que os validadores da Radix interromperam a blockchain?
Os investigadores determinaram que a falha podia afetar qualquer vault da rede. Os validadores colocaram stake suficiente offline para parar o consenso e impedir novas transações enquanto os programadores preparavam uma correção.
-
O atacante comprometeu as chaves privadas dos utilizadores?
Não. Os ativos foram levantados através da falha de autorização do Radix Engine e nenhuma chave privada foi comprometida.
-
Que danos secundários se seguiram ao roubo inicial da Radix?
A remoção de ativos transferidos para outras redes a partir de liquidity pools distorceu os preços e permitiu que outra conta extraísse milhões de XRD dos pools afetados.