Velkommen til Sherlock's Vulnerability Spotlight! Hver uke vil vi fremheve en virkningsfull sårbarhet våre forskere avdekket under en Sherlock-revisjon.
Denne uken har vi et overdreven uttak via feilkonfigurasjon.
Den ble funnet av @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090 og @0xleastwood i @NotionalFinance V3-konkurransen.

Hvis currentBalance er 999 900 USDC og withdrawAmountExternal er 1 000 000 USDC, er det utilstrekkelig saldo i kontrakten, og ytterligere midler må tas ut fra pengemarkedet (f.eks.

Siden kontrakten allerede har 999 900 USDC, må bare ytterligere 100 USDC trekkes ut av pengemarkedet for å oppfylle uttaksforespørselen på 1 000 000 USDC
Imidlertid, i stedet for å ta ut 100 USDC fra pengemarkedet, trekker Notional 1 000 000 USDC fra markedet i henhold til oracle.getRedemptionCalldata(withdrawAmountExternal)-funksjonen. Som et resultat blir et overskudd på 999 900 USDC trukket tilbake fra pengemarkedet.
Hva er virkningen?
Dette førte til at en overdreven mengde eiendeler gikk på tomgang i Notional og ikke genererte noen avkastning eller interesse i pengemarkedet, noe som førte til betydelig tap av avkastning for brukerne da de ville motta en lavere rente enn forventet og pådra seg tap av muligheter.
Angripere kan potensielt misbruke dette til å trekke midlene som Notional investerte i pengemarkedet, noe som fører til sorg og svimlende tap av avkastning/renter for protokollen.
Løsningen:
I hovedsak, før løsningen, sa koden til orakelet: "Forbered trinn for å trekke ut alt brukeren ønsker fra pengemarkedet."
Når den burde ha sagt: «Bare trekk det vi mangler fra pengemarkedet.»

Etter reparasjonen, for det tidligere eksemplet, forblir de 999 900 USDC som allerede holdes av kontrakten urørt og fortsetter å tjene avkastning, forbedre effektiviteten og bevare avkastningen for alle brukere.
Denne sårbarheten stammet fra en subtil logisk feil i hvordan uttaksbeløp ble beregnet og sendt. Ved å overse kontraktens eksisterende balanse, trakk systemet unødvendig for store midler fra pengemarkedet, noe som førte til kapitalineffektivitet og avkastningstap.
Vi er stolte over å ha bidratt til å sikre Notional gjennom dette funnet. Når det absolutt må være sikkert, er Sherlock det riktige valget.
2,81k
35
Innholdet på denne siden er levert av tredjeparter. Med mindre annet er oppgitt, er ikke OKX forfatteren av de siterte artikkelen(e) og krever ingen opphavsrett til materialet. Innholdet er kun gitt for informasjonsformål og representerer ikke synspunktene til OKX. Det er ikke ment å være en anbefaling av noe slag og bør ikke betraktes som investeringsråd eller en oppfordring om å kjøpe eller selge digitale aktiva. I den grad generativ AI brukes til å gi sammendrag eller annen informasjon, kan slikt AI-generert innhold være unøyaktig eller inkonsekvent. Vennligst les den koblede artikkelen for mer detaljer og informasjon. OKX er ikke ansvarlig for innhold som er vert på tredjeparts nettsteder. Beholdning av digitale aktiva, inkludert stablecoins og NFT-er, innebærer en høy grad av risiko og kan svinge mye. Du bør nøye vurdere om handel eller innehav av digitale aktiva passer for deg i lys av din økonomiske tilstand.