Tópicos em alta
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Bem-vindo ao Vulnerability Spotlight de Sherlock! A cada semana, destacaremos uma vulnerabilidade impactante que nossos pesquisadores descobriram durante uma auditoria do Sherlock.
Esta semana temos uma retirada excessiva por configuração incorreta.
Foi encontrado por @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090 e @0xleastwood no concurso @NotionalFinance V3.

Se o currentBalance for de 999.900 USDC e o withdrawAmountExternal for de 1.000.000 USDC, então não há saldo suficiente no contrato e fundos adicionais precisam ser retirados do mercado monetário (por exemplo, Compound).

Como o contrato já tem 999.900 USDC, apenas 100 USDC adicionais precisam ser retirados do mercado monetário para atender à solicitação de retirada de 1.000.000 USDC
No entanto, em vez de retirar 100 USDC do mercado monetário, a Notional retira 1.000.000 USDC do mercado de acordo com a função oracle.getRedemptionCalldata(withdrawAmountExternal). Como resultado, um excesso de 999.900 USDC está sendo retirado do mercado monetário.
Qual é o impacto?
Isso levou a uma quantidade excessiva de ativos ociosos no Notional e não geraram nenhum retorno ou interesse no mercado monetário, o que levou a uma perda significativa de rendimento para os usuários, pois eles receberiam uma taxa de juros mais baixa do que o esperado e incorreriam em perda de oportunidade.
Os invasores poderiam abusar disso para retirar os fundos que a Notional investiu no mercado monetário, levando a uma perda impressionante de retornos/juros para o protocolo.
A correção:
Essencialmente, antes da correção, o código dizia ao oráculo: "Prepare etapas para retirar tudo o que o usuário deseja do mercado monetário".
Quando deveria ter dito: "Apenas retire o que estamos perdendo do mercado monetário".

Após a correção, para o exemplo anterior, os 999.900 USDC já mantidos pelo contrato permanecem intocados e continuam ganhando rendimento, melhorando a eficiência e preservando os retornos para todos os usuários.
Essa vulnerabilidade resultou de uma falha lógica sutil na forma como os valores de retirada foram calculados e aprovados. Ao ignorar o saldo existente do contrato, o sistema retirou desnecessariamente fundos excessivos do mercado monetário, levando à ineficiência de capital e perda de rendimento.
Estamos orgulhosos de ter ajudado a proteger a Notional por meio dessa descoberta. Quando absolutamente precisa ser seguro, Sherlock é a escolha certa.
3,04K
Melhores
Classificação
Favoritos