🚨 ALERTA DE EXPLORAÇÃO: @spir8l_com drenado por ~10.7 $ETH
Causa raiz? Manipulação clássica de oráculo.
SpiralHookV2.borrow() confiou no preço spot do Uniswap V4 (poolManager.getSlot0()) com zero TWAP ou verificações de sanidade. O atacante bombeou o valor do colateral, tomou empréstimo contra ele e vendeu—tudo em um único bloco.
O protocolo tinha um guard de noSameBlockSwap, mas estava baseado em tx.origin. O atacante apenas criou 6 EOAs diferentes e o bypassou como se nem existisse.
EOA do atacante:
0x859E69A29244A10800A34eE66919426C02aFa2f0
Contrato de ataque:
0x0c23c8bc3b7c565f3f9f4ac691a4dc4275086f86
Contrato vulnerável:
0x1725577dC9B1ee2D95dB49c2193226471594aacc
Se seu protocolo usa preço spot para qualquer coisa crítica, você está a um MEV bot de distância de ser liquidez para saída.
TWAP ou nada. Sem exceções.
Causa raiz? Manipulação clássica de oráculo.
SpiralHookV2.borrow() confiou no preço spot do Uniswap V4 (poolManager.getSlot0()) com zero TWAP ou verificações de sanidade. O atacante bombeou o valor do colateral, tomou empréstimo contra ele e vendeu—tudo em um único bloco.
O protocolo tinha um guard de noSameBlockSwap, mas estava baseado em tx.origin. O atacante apenas criou 6 EOAs diferentes e o bypassou como se nem existisse.
EOA do atacante:
0x859E69A29244A10800A34eE66919426C02aFa2f0
Contrato de ataque:
0x0c23c8bc3b7c565f3f9f4ac691a4dc4275086f86
Contrato vulnerável:
0x1725577dC9B1ee2D95dB49c2193226471594aacc
Se seu protocolo usa preço spot para qualquer coisa crítica, você está a um MEV bot de distância de ser liquidez para saída.
TWAP ou nada. Sem exceções.