Vendo o chefe do onekey defendendo seus direitos, perdeu alguns milhões em ativos, e refletindo que o Defi realmente é muito frágil. Olhei ao redor e parece que ninguém explicou claramente como o hacker atacou, então fiz um pouco de pesquisa e compartilho com vocês: O protagonista da história é o ResupplyPair, onde os usuários podem emprestar ativos através da garantia. O modificador isSolvent no contrato é responsável por verificar se o usuário tem direito a solicitar os ativos emprestados, e a lógica do código é a seguinte: Podemos ver na linha 282 o cálculo do ltv. Se tivermos uma maneira de definir _exchangeRate como 0, a verificação se tornaria sempre verdadeira? Continuando a ler o código: Podemos ver que o valor dessa variável vem da chamada ao oráculo getPrices, e é o denominador, em outras palavras, precisamos fazer o preço do colateral ser extremamente alto. Lendo o código do oráculo, podemos saber que getPrices é apenas uma camada de encaminhamento, na verdade, chama a interface convertToAssets do ativo garantido (ou seja, do cofre). Continuando a ler o código: Podemos ver que esse resultado é composto por operações matemáticas muito complexas, e aqui o hacker ampliou o numerador, indo ainda mais longe com total_assets, completando o ataque. Ao verificar a implementação da função _total_assets, podemos descobrir: Esse valor está relacionado ao borrowed_token que o contrato controller deste cofre possui, que é o crvUSD. Analisando até aqui, tudo fica claro. O ResupplyPair foi criado usando um cofre vazio, e o hacker transferiu uma certa quantidade de borrowed_token para o contrato controller do cofre, fazendo com que o _exchangeRate se tornasse zero, assim ampliando infinitamente o valor de seus ativos garantidos, conseguindo emprestar até 10 milhões de reUSD com um custo extremamente baixo. Transação do ataque: Endereço do contrato ResupplyPair: Endereço do contrato controller do cofre: Endereço do contrato do cofre: Endereço do contrato do oráculo:
Mostrar original
68,33 mil
307
O conteúdo apresentado nesta página é fornecido por terceiros. Salvo indicação em contrário, a OKX não é o autor dos artigos citados e não reivindica quaisquer direitos de autor nos materiais. O conteúdo é fornecido apenas para fins informativos e não representa a opinião da OKX. Não se destina a ser um endosso de qualquer tipo e não deve ser considerado conselho de investimento ou uma solicitação para comprar ou vender ativos digitais. Na medida em que a IA generativa é utilizada para fornecer resumos ou outras informações, esse mesmo conteúdo gerado por IA pode ser impreciso ou inconsistente. Leia o artigo associado para obter mais detalhes e informações. A OKX não é responsável pelo conteúdo apresentado nos sites de terceiros. As detenções de ativos digitais, incluindo criptomoedas estáveis e NFTs, envolvem um nível de risco elevado e podem sofrer grandes flutuações. Deve considerar cuidadosamente se o trading ou a detenção de ativos digitais é adequado para si à luz da sua condição financeira.