O Float Protocol perdeu cerca de US$ 28.000, ou 10,71 ETH, depois que um atacante usou um empréstimo instantâneo para manipular o preço à vista do Uniswap V3 e explorar como seus contratos Hypervisor calculavam os valores das participações dos provedores de liquidez.
Resumo
- O Float Protocol perdeu cerca de US$ 28.000, ou 10,71 ETH, após um ataque de empréstimo instantâneo manipular o preço à vista do Uniswap V3.
- A SlowMist disse que a manipulação fez com que os contratos Hypervisor afetados calculassem valores de participação de LP inflados.
- O atacante usou grandes negociações para distorcer currentTick() e getTotalAmounts(), e então depositou e retirou repetidamente com base nos valores incorretos.
- A SlowMist disse que funções críticas não tinham verificação TWAP ou de oráculo e proteção contra slippage.
A SlowMist disse em 31 de agosto que o atacante distorceu o preço à vista do slot0 do Uniswap V3, fazendo com que os contratos Hypervisor afetados calculassem valores incorretos de participação de LP. A empresa de segurança blockchain rastreou a exploração até funções que não tinham verificação TWAP ou de oráculo e proteção contra slippage.
Usando grandes negociações no pool de liquidez V3 subjacente, o atacante manipulou os valores retornados por currentTick() e getTotalAmounts(). A SlowMist disse que o atacante então depositou e retirou fundos repetidamente enquanto os contratos Hypervisor trabalhavam com valores de participação inflados.
A empresa de segurança identificou o endereço do atacante como 0xaea29218262dc6b0904ca077f6527c49dfd426d9 e o contrato de ataque como 0xb46655eb5b77de277063a75586d1883e951b6c54.
Dois contratos vulneráveis foram listados como 0x85cbed523459b7f6f81c11e710df969703a8a70c e 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153, enquanto o pool de liquidez subjacente foi identificado como 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac.
Exploração do Float Protocol dependeu da manipulação do preço à vista do Uniswap V3
O ataque centrou-se em como os contratos afetados obtinham informações de preço do pool Uniswap V3 subjacente. A SlowMist disse que grandes negociações permitiram ao atacante distorcer o slot0, que contém o preço atual e as informações de tick do pool.
Uma vez que o preço do pool foi movido, a manipulação alterou os valores retornados por currentTick() e getTotalAmounts(). Os contratos Hypervisor afetados usaram os dados alterados para calcular os valores das participações de LP, o que permitiu ao atacante interagir com os contratos enquanto essas participações estavam precificadas incorretamente.
Empréstimos instantâneos forneceram o capital temporário necessário para fazer as grandes negociações. Como crypto.news explicou anteriormente, um empréstimo instantâneo permite que ativos sejam emprestados sem garantia inicial, desde que o empréstimo e as taxas sejam pagos na mesma transação blockchain.
Se o pagamento não ocorrer, toda a transação é revertida. O mecanismo permite que traders acessem grandes quantidades de liquidez temporária para arbitragem, trocas de garantias e liquidações, mas a mesma liquidez pode ser usada para explorar lógica vulnerável de preços ou de contratos inteligentes.
Em sua análise do Float Protocol, a SlowMist atribuiu a perda ao fato de os contratos dependerem de um preço à vista manipulável sem verificações que pudessem compará-lo com um preço médio ponderado no tempo ou outro oráculo. Funções críticas também não tinham proteção contra slippage, de acordo com a empresa de segurança.
Atacante usou repetidamente valores de participação de LP inflados
A SlowMist disse que o atacante não parou após mudar o preço do pool Uniswap V3. Uma vez que o slot0 foi distorcido, o atacante depositou e retirou repetidamente dos contratos afetados usando os cálculos inflados de participação de LP.
A sequência permitiu que valor fosse extraído enquanto os contratos dependiam do estado manipulado do pool. A SlowMist estimou a perda final em aproximadamente 10,71 ETH, valendo cerca de US$ 28.000 quando publicou o alerta.
Métodos semelhantes foram usados em outros ataques DeFi, onde grandes negociações temporárias distorcem preços ou proporções de pools antes que outro contrato use os valores manipulados.
Em julho, Allbridge Core foi interrompido depois que um atacante usou um empréstimo flash de USDC de US$ 1,12 milhão da Kamino durante um exploit que a PeckShield estimou ter causado cerca de US$ 1,65 milhão em perdas.
Onchain Lens disse que o atacante da Allbridge fez trocas rápidas de USDC e USDT para alterar a proporção dentro de um pool de stablecoin. O atacante então retirou liquidez na taxa distorcida antes de pagar o empréstimo flash na mesma transação.
A Allbridge disse que alguns pools de liquidez ficaram temporariamente desequilibrados após o incidente e pediu aos usuários que lucraram com preços incomuns que considerassem devolver os fundos. O protocolo pausou o Core enquanto investigadores rastreavam ativos que foram movidos de Solana para Ethereum.
Os dados de preço continuam sendo um alvo em ataques DeFi
Outro incidente de julho mostrou como informações de preço manipuladas podem ser usadas mesmo quando a fraqueza está fora dos contratos inteligentes de um protocolo.
A Ostium concluiu que seu exploit de US$ 23,75 milhões em USDC originou-se de infraestrutura off-chain comprometida. O protocolo de negociação descentralizado disse que um atacante enviou relatórios fraudulentos de preço BTC/USD que permitiram que fundos fossem drenados de seu vault de liquidez OLP.
A Ostium disse que seus contratos inteligentes não foram a fonte dessa violação. O monitoramento automatizado detectou o ataque, a negociação foi retomada em 23 de julho, e o protocolo relatou que a garantia do usuário não foi afetada.
O incidente da Float Protocol envolveu um mecanismo diferente descrito pela SlowMist. A análise da empresa de segurança colocou a fraqueza dentro dos contratos Hypervisor afetados, onde dados manipulados do pool Uniswap V3 poderiam influenciar os cálculos usados para avaliar as participações de LP.
Capital de empréstimo flash apareceu em outros ataques este ano. Um ataque de julho contra a Swan Treasury usou um empréstimo flash da PancakeSwap depois que uma chave de signatário off-chain comprometida permitiu que um atacante comprasse tokens STY com grande desconto.
O exploit da Swan Treasury causou uma perda estimada de US$ 625.000. A análise de segurança descobriu que assinaturas falsificadas de reivindicação e transferência foram criadas com a chave de signatário comprometida do protocolo, permitindo que aproximadamente 687.000 STY fossem comprados com cerca de 100 vezes de desconto antes de serem vendidos no pool STY/USDT.
O empréstimo flash forneceu capital para a transação, enquanto os investigadores atribuíram a vulnerabilidade subjacente à chave de signatário vazada, em vez da lógica de verificação de assinatura do protocolo.
SlowMist aponta para verificações de preço ausentes nos contratos da Float Protocol
Para a Float Protocol, a SlowMist identificou especificamente a ausência de validação TWAP ou oracle como parte do caminho do ataque.
Um TWAP usa observações coletadas ao longo de um período em vez de depender apenas do preço disponível em um momento. Os preços à vista dentro de pools de liquidez podem se mover quando uma negociação suficientemente grande altera a proporção de ativos, que foi o mecanismo que a SlowMist disse que o atacante da Float Protocol explorou.
O guia de empréstimo flash do Crypto.news descreveu a manipulação de preço como uma das maneiras comuns pelas quais a liquidez temporária pode ser usada contra um aplicativo DeFi vulnerável. O relatório observou que o empréstimo flash fornece o capital para um ataque, enquanto a fraqueza explorável pode estar em oráculos de preço, sistemas de governança ou lógica de contrato.
No caso da Float Protocol, a SlowMist disse que grandes negociações foram usadas para distorcer o valor slot0 do pool Uniswap V3, que por sua vez alterou currentTick() e getTotalAmounts(). O atacante depositou e retirou repetidamente enquanto os contratos Hypervisor afetados calculavam valores inflados de participação de LP, resultando em uma perda estimada de 10,71 ETH.






