Tervetuloa Sherlockin haavoittuvuuksien valokeilaan! Joka viikko korostamme vaikuttavaa haavoittuvuutta, jonka tutkijamme paljastivat Sherlock-auditoinnin aikana.
Tällä viikolla meillä on liiallinen nosto virheellisen määrityksen vuoksi.
Sen löysivät @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090 ja @0xleastwood @NotionalFinance V3 -kilpailussa.

Jos currentBalance on 999 900 USDC ja withdrawAmountExternal on 1 000 000 USDC, sopimuksessa ei ole riittävästi saldoa ja rahamarkkinoilta on nostettava lisävaroja (esim. Compound).

Koska sopimuksessa on jo 999 900 USDC, vain 100 USDC on nostettava rahamarkkinoilta 1 000 000 USDC:n nostopyynnön täyttämiseksi
Sen sijaan, että Notional nostaisi 100 USDC:tä rahamarkkinoilta, se nostaa markkinoilta 1 000 000 USDC:tä oracle.getRedemptionCalldata(withdrawAmountExternal)-funktion mukaisesti. Tämän seurauksena rahamarkkinoilta vedetään yli 999 900 USDC:tä.
Mikä on vaikutus?
Tämä johti siihen, että liiallinen määrä omaisuuseriä oli tyhjäkäynnillä nimellisarvossa eikä tuottanut tuottoa tai korkoa rahamarkkinoilla, mikä johti käyttäjien merkittävään tuoton menetykseen, koska he saivat odotettua alhaisemman koron ja kärsivät mahdollisuustappioita.
Hyökkääjät voivat mahdollisesti käyttää tätä väärin vetääkseen Notionalin rahamarkkinoille sijoittamat varat, mikä johtaa suruun ja hämmästyttävään protokollan tuoton/koron menetykseen.
Korjaus:
Pohjimmiltaan ennen korjausta koodi sanoi oraakkelille: "Valmistele vaiheet vetääksesi kaiken käyttäjän haluaman rahamarkkinoilta."
Kun sen olisi pitänyt sanoa: "Vedä rahamarkkinoilta vain se, mitä meiltä puuttuu."

Korjauksen jälkeen aiemmassa esimerkissä sopimuksen jo hallussa oleva 999 900 USDC pysyy koskemattomana ja ansaitsee edelleen tuottoa, parantaa tehokkuutta ja säilyttää tuoton kaikille käyttäjille.
Tämä haavoittuvuus johtui hienovaraisesta logiikkavirheestä nostosummien laskennassa ja välittämisessä. Jättämällä huomiotta sopimuksen nykyisen tasapainon järjestelmä veti tarpeettomasti liikaa varoja rahamarkkinoilta, mikä johti pääoman tehottomuuteen ja tuottojen menetykseen.
Olemme ylpeitä siitä, että olemme auttaneet turvaamaan Notionalin tämän löydön kautta. Kun sen on ehdottomasti oltava turvallinen, Sherlock on oikea valinta.
2,83 t.
35
Tällä sivulla näytettävä sisältö on kolmansien osapuolten tarjoamaa. Ellei toisin mainita, OKX ei ole lainatun artikkelin / lainattujen artikkelien kirjoittaja, eikä OKX väitä olevansa materiaalin tekijänoikeuksien haltija. Sisältö on tarkoitettu vain tiedoksi, eikä se edusta OKX:n näkemyksiä. Sitä ei ole tarkoitettu minkäänlaiseksi suositukseksi, eikä sitä tule pitää sijoitusneuvontana tai kehotuksena ostaa tai myydä digitaalisia varoja. Siltä osin kuin yhteenvetojen tai muiden tietojen tuottamiseen käytetään generatiivista tekoälyä, tällainen tekoälyn tuottama sisältö voi olla epätarkkaa tai epäjohdonmukaista. Lue aiheesta lisätietoa linkitetystä artikkelista. OKX ei ole vastuussa kolmansien osapuolten sivustojen sisällöstä. Digitaalisten varojen, kuten vakaakolikoiden ja NFT:iden, omistukseen liittyy suuri riski, ja niiden arvo voi vaihdella merkittävästi. Sinun tulee huolellisesti harkita, sopiiko digitaalisten varojen treidaus tai omistus sinulle taloudellisessa tilanteessasi.