När han såg onekey-bossen försvara sina rättigheter och Resupply, förlora några M-tillgångar, beklagade han sig över att Defi verkligen är för ömtåligt. Efter att ha tittat runt verkade jag inte vara särskilt tydlig med hur hackare attackerade, så jag gjorde lite efterforskningar själv och delade det med dig:
Huvudpersonen i berättelsen är ResupplyPair, användaren kan låna och låna genom att satsa tillgångar, och isSolvent-modifieraren i kontraktet ansvarar för att kontrollera om användaren är berättigad att låna ut de begärda tillgångarna, den specifika kodlogiken är som följer:
Du kan se beräkningen av LTV på rad 282, om vi har ett sätt att sätta _exchangeRate till 0, skulle då inte kontrollen alltid vara sann? Fortsätt läsa koden:
Du kan se att variabeln för detta värde kommer från anropet till oraklet getPrices och är nämnaren, med andra ord måste vi göra priset på säkerheten extremt stort.
När du läser oraklets kod kan du se att getPrices bara är ett lager av vidarebefordran, som faktiskt anropar convetToAssets-gränssnittet för den insatta tillgången (dvs. valvet). Fortsätt läsa koden:
Du kan se att detta resultat består av mycket komplexa matematiska operationer, här hackaren är genom att förstärka molekylen, ytterligare total_assets, för att slutföra attacken, titta på den _total_assets funktionsimplementeringen kan hittas:
Det här värdet är relaterat till den borrowed_token som innehas av kontrollantkontraktet för det här valvet, vilket är crvUSD.
Analysen är faktiskt tydlig här, ResupplyPair skapades med ett tomt valv, och hackaren överförde en viss mängd borrowed_token till kontrollkontraktet för valvet, och slutligen fick _exchangeRate återgå till noll, så att värdet på hans pantsatta tillgångar förstärktes oändligt, och han lånade ut upp till 10 miljoner reUSD till en mycket liten kostnad.
Attack Handel:
Adress till ResupplyPair-kontraktet:
Adress till kontrakt för Treasury controller:
Adress till Treasury Contract:
Adress till Oracle-kontrakt:
Visa original



68,34 tn
307
Innehållet på den här sidan tillhandahålls av tredje part. Om inte annat anges är OKX inte författare till den eller de artiklar som citeras och hämtar inte någon upphovsrätt till materialet. Innehållet tillhandahålls endast i informationssyfte och representerar inte OKX:s åsikter. Det är inte avsett att vara ett godkännande av något slag och bör inte betraktas som investeringsrådgivning eller en uppmaning att köpa eller sälja digitala tillgångar. I den mån generativ AI används för att tillhandahålla sammanfattningar eller annan information kan sådant AI-genererat innehåll vara felaktigt eller inkonsekvent. Läs den länkade artikeln för mer detaljer och information. OKX ansvarar inte för innehåll som finns på tredje parts webbplatser. Innehav av digitala tillgångar, inklusive stabila kryptovalutor och NFT:er, innebär en hög grad av risk och kan fluktuera kraftigt. Du bör noga överväga om handel med eller innehav av digitala tillgångar är lämpligt för dig mot bakgrund av din ekonomiska situation.