A Mist divulgou informações, a ether.fi foi alvo de um ataque e perdeu cerca de 15,45 ETH. A Mist afirma que já havia contatado a equipe em particular antes do anúncio para uma divulgação responsável.

O problema está no contrato AtomicQueue no método solve(): o contrato não verifica se o solver == msg.sender, nem possui mecanismos de assinatura, registro ou autorização. O atacante, primeiro, constrói uma solicitação maliciosa via updateAtomicRequest() e, em seguida, força o endereço da vítima a se tornar o solver; então, quando o contrato chama finishSolve, executa want.transferFrom(solver, users[i], assetsToUser), desviando as cotas ERC-20 que a vítima havia autorizado anteriormente.

Isso volta a lembrar: parâmetros de entrada não podem ser considerados confiáveis por padrão; fluxos envolvendo transferFrom devem validar a relação entre o chamador e a autorização; e os usuários também devem limpar autorizações ilimitadas regularmente.

#Web3安全 #DeFi