Ik zag dat de onekey baas rechten verdedigt voor Resupply, met een verlies van enkele M aan activa, en ik moet zeggen dat DeFi echt te kwetsbaar is. Na een rondje kijken, lijkt het erop dat niemand echt duidelijk heeft uitgelegd hoe de hacker heeft aangevallen, dus heb ik zelf wat onderzoek gedaan en deel dit met jullie: De hoofdrolspeler in het verhaal is ResupplyPair, waar gebruikers activa kunnen staken voor leningen. De isSolvent modifier in het contract is verantwoordelijk voor het controleren of gebruikers in aanmerking komen voor de aangevraagde activa. De specifieke code logica is: Je kunt zien dat op regel 282 de berekening van ltv staat. Als we een manier hebben om _exchangeRate op 0 te zetten, dan is de controle altijd waar, toch? Laten we de code verder lezen: Je kunt zien dat deze waarde afkomstig is van de oproep naar de oracle getPrices, en het is de noemer. Met andere woorden, we moeten de prijs van de collateral extreem hoog maken. Door de code van de oracle te lezen, kunnen we zien dat getPrices slechts een laag van doorsturen is, en in werkelijkheid de convertToAssets interface van deze gestakte activa (d.w.z. de vault) aanroept. Laten we de code verder lezen: Je kunt zien dat dit resultaat bestaat uit zeer complexe wiskundige berekeningen. Hier heeft de hacker de teller vergroot, en verder total_assets, om de aanval te voltooien. Door de implementatie van de _total_assets functie te bekijken, kunnen we ontdekken: Deze waarde is gerelateerd aan de borrowed_token die wordt gehouden door het controller contract van deze vault, namelijk crvUSD. Tot hier is de analyse eigenlijk duidelijk. ResupplyPair gebruikte een lege vault bij de creatie, en de hacker heeft een bepaalde hoeveelheid borrowed_token naar het controller contract van de vault overgemaakt, waardoor uiteindelijk _exchangeRate op nul kwam te staan, waardoor de waarde van zijn gestakte activa oneindig werd vergroot, en met een zeer lage kostprijs tot wel 10M aan reUSD kon lenen. Aanvalstransactie: ResupplyPair contractadres: Vault controller contractadres: Vault contractadres: Oracle contractadres:
Origineel weergeven
68,34K
307
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.