De acordo com o monitoramento de risco de segurança Beosin EagleEye, alerta precoce e monitoramento de plataforma de bloqueio da empresa de auditoria de segurança blockchain Beosin,**, o contrato LibertiVault na cadeia Polygon foi atacado e a perda de cerca de 123ETH e 56.234USDT no valor de cerca de 290.000 dólares americanos , e a cadeia Ethereum 35ETH e 96223USDT valem cerca de US$ 160.000, totalizando mais de US$ 450.000. **A equipe técnica analisou e descobriu que esse ataque foi causado por uma vulnerabilidade de reentrada no contrato LibertiVault.
O invasor emprestou 5 milhões de USDT usando o empréstimo flash e chamou a função de depósito do contrato LibertiVault para penhor. A lógica de penhor usará parte dos tokens prometidos para troca e, em seguida, calculará a quantidade de moedas cunhadas. A quantidade de moedas as moedas cunhadas são baseadas no contrato e no depósito O cálculo é baseado na proporção da quantidade de tokens depositados no saldo antes do depósito do contrato.
O swap da operação de câmbio irá chamar o contrato do hacker. Neste momento, o hacker entra novamente no depósito da chamada pela primeira vez, e entra novamente nesta função pela segunda vez, depositando 2,5 milhões de USDT no contrato.
Após a segunda reentrada, o contrato cunhará moedas para o hacker de acordo com a proporção de 2,5 milhões de USDT para o saldo de USDT do contrato anterior. Após a conclusão da função de depósito da primeira reentrada, o hacker deposita outros 2,5 milhões de USDT afim disso.
Neste momento, a operação de câmbio na função de depósito externo é concluída e o contrato cunhará moedas de acordo com a proporção de 2,5 milhões de USDT para o saldo de USDT do contrato.
O problema está no quarto ponto. Logicamente falando, o segundo cálculo do saldo do contrato deveria ser o saldo anterior mais o saldo de 2,5 milhões informado pela primeira vez como parâmetro para este cálculo, mas aqui está o Na forma de reentrada, o saldo do contrato foi obtido logo no início, portanto, os parâmetros não foram alterados e o saldo original ainda é usado para cálculo, resultando na emissão de um grande número de tokens de voucher para hackers.
Por fim, o hacker removeu os tokens e devolveu o empréstimo instantâneo para obter lucro.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
Análise do ataque ao contrato LibertiVault na cadeia de polígonos
De acordo com o monitoramento de risco de segurança Beosin EagleEye, alerta precoce e monitoramento de plataforma de bloqueio da empresa de auditoria de segurança blockchain Beosin,**, o contrato LibertiVault na cadeia Polygon foi atacado e a perda de cerca de 123ETH e 56.234USDT no valor de cerca de 290.000 dólares americanos , e a cadeia Ethereum 35ETH e 96223USDT valem cerca de US$ 160.000, totalizando mais de US$ 450.000. **A equipe técnica analisou e descobriu que esse ataque foi causado por uma vulnerabilidade de reentrada no contrato LibertiVault.
O invasor emprestou 5 milhões de USDT usando o empréstimo flash e chamou a função de depósito do contrato LibertiVault para penhor. A lógica de penhor usará parte dos tokens prometidos para troca e, em seguida, calculará a quantidade de moedas cunhadas. A quantidade de moedas as moedas cunhadas são baseadas no contrato e no depósito O cálculo é baseado na proporção da quantidade de tokens depositados no saldo antes do depósito do contrato.
O swap da operação de câmbio irá chamar o contrato do hacker. Neste momento, o hacker entra novamente no depósito da chamada pela primeira vez, e entra novamente nesta função pela segunda vez, depositando 2,5 milhões de USDT no contrato.
Após a segunda reentrada, o contrato cunhará moedas para o hacker de acordo com a proporção de 2,5 milhões de USDT para o saldo de USDT do contrato anterior. Após a conclusão da função de depósito da primeira reentrada, o hacker deposita outros 2,5 milhões de USDT afim disso.
Neste momento, a operação de câmbio na função de depósito externo é concluída e o contrato cunhará moedas de acordo com a proporção de 2,5 milhões de USDT para o saldo de USDT do contrato.
O problema está no quarto ponto. Logicamente falando, o segundo cálculo do saldo do contrato deveria ser o saldo anterior mais o saldo de 2,5 milhões informado pela primeira vez como parâmetro para este cálculo, mas aqui está o Na forma de reentrada, o saldo do contrato foi obtido logo no início, portanto, os parâmetros não foram alterados e o saldo original ainda é usado para cálculo, resultando na emissão de um grande número de tokens de voucher para hackers.
Por fim, o hacker removeu os tokens e devolveu o empréstimo instantâneo para obter lucro.