Parece que @ImpermaxFinance foi HACKED com ~110 ETH ($380K). A minha análise preliminar 👇 Impermax é um protocolo de empréstimo para farming de LP alavancado isolado. Cada mercado isolado tem vários imxToken, que é um cofre onde você deposita o token subjacente e recebe imxToken. A vulnerabilidade reside na função "exchangeRate" onde, se o totalBalance ou totalSupply for zero, retorna um valor inicializado de 1e18. Além disso, a função de mint/redeem tem um problema de arredondamento. Além disso, existe um contrato semelhante a um curador que gerencia os cofres dos usuários e os aloca para diferentes mercados. Outra vulnerabilidade é que esses curadores têm uma função de alocação desprotegida que permite a qualquer um realocar seus fundos para diferentes mercados. O ataque usou várias transações. (1) O atacante primeiro paga todos os empréstimos ativos em um mercado, isso reduz o totalBorrows para 0; E o atacante também aloca 0 para este mercado; (2) O atacante repetidamente mint e retira do mercado até que o totalBalance seja arredondado para 0. Atualmente, o totalSupply não é 0 e é mantido apenas pelo atacante. (3) O atacante aloca todos os fundos do curador para este mercado. Este depósito será a uma taxa de câmbio de 1e18, mas o atacante já possui algumas ações. (4) O atacante retira suas ações em (2) para lucro. Por favor, PAUSE os mercados afetados o mais rápido possível @ImpermaxFinance. Note que apenas alguns cofres estão afetados, que têm apenas depósitos de curadores. Se um cofre tiver depósitos feitos por usuários, parece estar seguro. --- Isto não é aconselhamento financeiro, e é apenas a minha análise preliminar e posso cometer erros. Entrei em contato com a equipe, mas a equipe não respondeu.
@ImpermaxFinance Atualização, a equipe já está ciente do problema e está a investigar ativamente
Atualizar o passo (2) do ataque não está correto, na verdade é: (2.1) criar uma nova posição uni v3 como colateral (2.2) emprestar 1 wei no mercado alvo; (2.3) emprestar o máximo do mercado do outro token par; (2.4) esperar por um bloco; depois liquidar a posição de empréstimo (2.5) chamar collateral.restructureBadDebt Isto irá retirar com sucesso 1 wei do totalbalance do mercado enquanto o totalsupply permanece inalterado. O atacante, ao fazer isso várias vezes, reduz o total balance a 0 e o totalsupply não-zero.
32,49K