Welkom bij Sherlock's Vulnerability Spotlight! Elke week zullen we een impactvolle kwetsbaarheid belichten die onze onderzoekers hebben ontdekt tijdens een Sherlock-audit.
Deze week hebben we een buitensporige opname door misconfiguratie.
Het werd gevonden door @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090, en @0xleastwood in de @NotionalFinance V3-wedstrijd.

Als het huidige saldo 999.900 USDC is en het opneembare bedrag extern 1.000.000 USDC is, dan is er onvoldoende saldo in het contract, en moeten er aanvullende middelen worden opgenomen uit de geldmarkt (bijv. Compound).

Aangezien het contract al 999.900 USDC heeft, hoeft er slechts 100 USDC extra uit de geldmarkt te worden opgenomen om de opnameverzoek van 1.000.000 USDC te vervullen.
Echter, in plaats van 100 USDC uit de geldmarkt op te nemen, trekt Notional 1.000.000 USDC uit de markt volgens de oracle.getRedemptionCalldata(withdrawAmountExternal) functie. Als gevolg hiervan wordt er een overschot van 999.900 USDC uit de geldmarkt opgenomen.
Wat is de impact?
Dit leidde tot een overmatige hoeveelheid activa die in Notional stil lagen en geen rendement of rente genereerden op de geldmarkt, wat leidde tot een significante verlies van rendement voor de gebruikers, aangezien zij een lagere rente zouden ontvangen dan verwacht en een opportuniteitsverlies zouden lijden.
Aanvallers zouden dit mogelijk kunnen misbruiken om de fondsen die Notional in de geldmarkt heeft geïnvesteerd, te trekken, wat zou leiden tot griefing en een enorme verlies van rendement/rente voor het protocol.
De Oplossing:
In wezen zei de code vóór de oplossing tegen de oracle: "Bereid stappen voor om alles wat de gebruiker wil uit de geldmarkt op te nemen."
Terwijl het had moeten zeggen: "Haal alleen wat we missen uit de geldmarkt."

Na de oplossing blijft de eerder genoemde 999.900 USDC die door het contract wordt gehouden onaangeroerd en blijft het rendement genereren, waardoor de efficiëntie verbetert en de opbrengsten voor alle gebruikers behouden blijven.
Deze kwetsbaarheid kwam voort uit een subtiele logische fout in de manier waarop opnamebedragen werden berekend en doorgegeven. Door de bestaande balans van het contract over het hoofd te zien, trok het systeem onnodig overmatige fondsen uit de geldmarkt, wat leidde tot kapitaalinefficiëntie en verlies van rendement.
We zijn er trots op Notional te hebben geholpen met deze ontdekking. Wanneer het absoluut veilig moet zijn, is Sherlock de juiste keuze.
2,83K
35
De inhoud op deze pagina wordt geleverd door derden. Tenzij anders vermeld, is OKX niet de auteur van het (de) geciteerde artikel(en) en claimt geen auteursrecht op de materialen. De inhoud is alleen bedoeld voor informatieve doeleinden en vertegenwoordigt niet de standpunten van OKX. Het is niet bedoeld als een goedkeuring van welke aard dan ook en mag niet worden beschouwd als beleggingsadvies of een uitnodiging tot het kopen of verkopen van digitale bezittingen. Voor zover generatieve AI wordt gebruikt om samenvattingen of andere informatie te verstrekken, kan deze door AI gegenereerde inhoud onnauwkeurig of inconsistent zijn. Lees het gelinkte artikel voor meer details en informatie. OKX is niet verantwoordelijk voor inhoud gehost op sites van een derde partij. Het bezitten van digitale activa, waaronder stablecoins en NFT's, brengt een hoge mate van risico met zich mee en de waarde van deze activa kan sterk fluctueren. Overweeg zorgvuldig of de handel in of het bezit van digitale activa geschikt voor je is in het licht van je financiële situatie.