A Term Labs recuperou todas as posições de empréstimo de taxa fixa mantidas em vaults afetadas por sua exploração de governança de agosto, com a última posição movida em 25 de agosto, enquanto as Meta Vaults e estratégias afetadas permanecem desativadas.
Resumo
- A Term Labs recuperou todas as posições de empréstimo de taxa fixa afetadas até 25 de agosto, enquanto suas Meta Vaults e estratégias afetadas permanecem desativadas.
- Os atacantes usaram propostas de governança maliciosas para remover atrasos de execução antes de drenar ETH e USDC líquidos das estratégias de vault.
- Um token de repo falsificado foi precificado contra o saldo exato de USDC líquido de cada estratégia, permitindo que o atacante varresse os fundos disponíveis.
- A Term Labs disse que seus contratos V1 e V2 não foram comprometidos, e seus mercados diretos de empréstimo e tomada permaneceram operacionais.
A Term Labs disse em seu último relatório de incidente que a última posição de taxa fixa foi recuperada às 14:52 UTC em 25 de agosto, enquanto sua investigação descobriu que o ataque foi confinado a saldos líquidos mantidos dentro das vaults da Term.
O protocolo disse que seus contratos V1 e V2 não foram comprometidos e seus mercados diretos de empréstimo e tomada continuaram operando durante todo o incidente.
Term Labs diz que contratos de empréstimo escaparam da exploração de vault
O novo relato técnico dá uma imagem mais detalhada do ataque de 23 de agosto, que empresas de segurança estimaram anteriormente ter drenado cerca de US$ 8,5 milhões das vaults da Term Finance.
A Term Labs inicialmente divulgou uma exploração de governança afetando vaults sem fornecer a sequência completa do ataque. As empresas de segurança CertiK e PeckShield estimaram perdas próximas a US$ 8,5 milhões, incluindo aproximadamente 2.843 ETH e 1,68 milhão de USDC. A PeckShield disse que o USDC foi posteriormente trocado por aproximadamente 1,68 milhão de DAI.
O protocolo posteriormente desativou suas Meta Vaults e revogou seus papéis de governança DAO. Novos depósitos foram permanentemente desabilitados, enquanto saques permaneceram disponíveis. A Yearn disse na época que os contratos afetados usavam a infraestrutura Yearn V3, mas que o ataque envolveu um wrapper de governança desenvolvido para a Term, em vez de vaults padrão Yearn V3.
A Term Labs agora diz que seu sistema subjacente de empréstimo de taxa fixa permaneceu fora do alcance do atacante. As funções de fornecimento, pagamento e liquidação continuaram operando sem interrupção em seus mercados diretos de empréstimo.
O ataque, em vez disso, se desenvolveu através de duas carteiras de operador financiadas via Tornado Cash e uma série de propostas de governança que alteraram os controles em torno das estratégias de vault da Term.
O primeiro operador recebeu fundos via Tornado Cash em 17 de agosto. Cerca de 24 minutos depois, a carteira submeteu uma proposta ETH intitulada "Vote SIM para VETAR as mudanças propostas nos parâmetros de vault pelo curador".
Entre as mudanças incluídas na proposta estava uma redução do Atraso de governança da stack afetada para zero. A Term Labs disse que a mudança removeu um período adicional de sete dias e uma hora durante o qual provedores de liquidez poderiam ter interrompido a proposta antes da execução.
Atacantes prepararam campanhas separadas de ETH e USDC
Uma segunda carteira de operador recebeu financiamento do Tornado Cash em 18 de agosto antes de implantar um contrato singleton naquela tarde.
De acordo com a Term Labs, o contrato combinou três funções em uma única implantação: um controlador, um adaptador de preço e um token de repo falsificado. Um contrato auxiliar foi então inicializado usando o singleton.
Três dias depois, em 21 de agosto, o auxiliar submeteu sete propostas de governança e votou sozinho nelas.
Duas propostas visavam DAOs de estratégia ETH, mas nunca foram executadas. As outras cinco se tornaram parte do ataque USDC.
Cada uma das cinco propostas reduziu o Atraso de governança relevante para zero, removendo um período adicional de três dias e uma hora no qual LPs poderiam, de outra forma, ter intervindo antes da execução.
Uma análise anterior do incidente descobriu que o atacante obteve influência de governança a um custo muito baixo. Uma revisão da tomada de governança descobriu que aproximadamente US$ 951 foram gastos para adquirir tokens de governança suficientes para controlar votos ligados a vaults que detinham milhões de dólares em depósitos.
As transações não exigiram que o atacante comprometesse os contratos principais de empréstimo de taxa fixa da Term. Em vez disso, os contratos de governança executaram instruções que haviam passado pelo processo de proposta e votação.
Um caminho de ataque semelhante foi usado contra a StrongBlock no início de agosto, quando um atacante assumiu seu sistema de governança e drenou cerca de US$ 72.000 em tokens STRONG e STRNGR. O atacante ganhou poder de voto suficiente para aprovar uma proposta que, em última análise, forneceu controle administrativo sobre o contrato Governor do projeto.
ETH foi roteado através de uma estratégia de destinatário fixo
A primeira proposta bem-sucedida da Term foi executada às 06:25 UTC em 23 de agosto.
Quatro estratégias ETH ativas, Shorewoods, August Digital, Parity Prime e Parity Core, foram recolhidas no Meta Vault usando update_debt() e direcionadas para uma estratégia recém-adicionada chamada frWETH-EXIT.
A Term Labs disse que a estratégia foi nomeada "Fixed Recipient WETH Exit Strategy".
Uma vez que o WETH entrou na nova estratégia, frWETH-EXIT encaminhou o valor total para o primeiro operador durante a mesma chamada.
A transação deixou o Meta Vault com 2.841,74 shares em uma estratégia que não continha nenhum dos WETH que foram transferidos para ela.
Esse número corresponde de perto aos aproximadamente 2.843 ETH que a PeckShield rastreou da Term Finance durante sua análise inicial do incidente.
Vinte e dois minutos após a transação de ETH, a segunda campanha foi executada contra cinco DAOs de estratégia USDC.
Parity Prime, Parity Core, Parity HY, Parity HY v2 e RockawayX Tori foram alvo às 06:47 UTC.
A Term Labs disse que cada proposta fez com que seu DAO vendesse uma unidade de um token repo falsificado para a estratégia associada a um valor igual ao saldo líquido total de USDC da estratégia.
O atacante conseguiu executar a venda depois que as propostas instalaram um contrato chamado fmTERT.
A Term Labs disse que fmTERT se passou tanto pelo controlador usado para determinar se um token era um instrumento legítimo da Term quanto pelo adaptador de preço responsável por determinar quanto o instrumento valia.
As propostas definiram o índice de reserva de cada estratégia para zero e aumentaram seu limite de concentração para o valor máximo permitido, impedindo que esses controles limitassem a transação de token falso.
O token falsificado foi então precificado usando uma função dinâmica redemptionValue().
Na execução, a função retornou a quantidade precisa de USDC líquido disponível na estratégia, permitindo que uma única unidade do token repo falso fosse vendida por praticamente todo o saldo disponível da estratégia.
Após a venda, as propostas aprovaram os rendimentos em USDC e os varreram de cada DAO para a carteira do segundo operador.
Posições de taxa fixa foram movidas antes que pudessem ser resgatadas
A Term Labs disse que os empréstimos de taxa fixa mantidos pelos vaults afetados não puderam ser alcançados pelo ataque em si.
Um problema separado teria surgido quando essas posições atingissem a maturidade, porque seus rendimentos estavam programados para serem resgatados nos mesmos vaults que foram capturados durante o ataque de governança.
O protocolo respondeu atualizando os contratos afetados e movendo as posições de taxa fixa antes da maturidade.
Todas as posições de empréstimo de taxa fixa afetadas foram recuperadas desde então, com a posição final movida às 14:52 UTC em 25 de agosto.
O incidente ilustra o papel que os atrasos de execução podem desempenhar na segurança da governança. Dias antes do ataque à Term Finance, a Binance disse que impediu uma proposta maliciosa de DAO que ameaçava aproximadamente US$ 1,2 milhão pertencentes a um projeto não identificado. Faltavam menos de 48 horas para que essa proposta pudesse ser executada quando a exchange contatou o projeto, que acabou rejeitando-a sem perda relatada.
No caso da Term, as propostas maliciosas em si removeram períodos de atraso adicionais antes que os ativos fossem tomados. A proposta ETH eliminou uma janela de sete dias e uma hora, enquanto as cinco propostas USDC removeram períodos de três dias e uma hora de suas respectivas pilhas de governança.
A Term Labs disse que seus Meta Vaults e estratégias afetadas permanecem desligados, enquanto o trabalho de desligamento envolvendo os vaults restantes de baixa atividade ainda está em andamento.
O protocolo está trabalhando com agências de aplicação da lei e empresas de segurança cibernética para identificar os responsáveis pelo ataque e disse que forneceu informações relevantes para auxiliar nas investigações.






