Populär version: En enkel "översättning" för att tolka den @CetusProtocol hackarens analys av teknikchefen: Den här attacken exponerar ett klassiskt heltalsspillproblem, som manifesteras i datatrunkering under typkonvertering. Tekniska detaljer demonterade: 1) Sårbarhetsplats: Problemet uppstår i typkonverteringsmekanismen för get_amount_by_liquidity-funktionen, och cast-konverteringen från U256 till U64 orsakar dataförlust på hög nivå. 2) Attackprocess: 1. Angriparen skickar in en stor mängd likviditetsparametrar genom add_liquidity-funktionen; 2. Antalet B-tokens som krävs för beräkning av systemanrop get_delta_b funktion. 3. I beräkningsprocessen multipliceras de två uppgifterna av U128-typ, och det teoretiska resultatet bör vara U256-typ; Nyckelfel: u256-resultatet omvandlas till u64 när funktionen returneras, vilket resulterar i trunkering av 128-bitars data på hög nivå. 3) Utnyttjandeeffekt: Likviditetskvoten som ursprungligen krävde ett stort antal tokens för att prägla kan nu kompletteras med endast ett mycket litet antal tokens. Angriparen får en stor del av likviditeten till en mycket låg kostnad och realiserar sedan arbitrage av poolen genom att förstöra en del av likviditeten. Enkel analogi: Precis som att använda en kalkylator som bara kan visa 8 siffror för att beräkna 1 miljard × 1 miljard, kan resultatet av en 20-siffrig beräkning bara visa de sista 8 siffrorna, och de första 12 siffrorna försvinner direkt. Angriparen utnyttjar denna sårbarhet. För att vara tydlig: denna sårbarhet har inget att göra med @SuiNetwork:s underliggande säkerhetsarkitektur, och säkerhets-"äran" i Move-språket är fortfarande trovärdig för tillfället. Varför? Move-språket har betydande fördelar när det gäller resurshantering och typsäkerhet, och kan effektivt förhindra säkerhetsproblem på låg nivå, till exempel dubbla utgifter och resursläckage. Men den här gången är Cetus-protokollet ett matematiskt fel på applikationslogikens nivå, inte ett designfel i själva Move-språket. Specifikt är Moves typsystem, även om det är rigoröst, fortfarande beroende av utvecklarens rätta bedömning för explicit casting. När ett program aktivt utför en typkonvertering från U256 till U64 kan kompilatorn inte avgöra om detta är avsiktligt eller ett logiskt fel. Dessutom har denna säkerhetsincident inget att göra med Sui:s underliggande kärnfunktioner som konsensusmekanism, transaktionsbehandling och tillståndshantering. Sui Network utför endast troget de transaktionsinstruktioner som skickas in av Cetus-protokollet, och sårbarheten härrör från de logiska bristerna i själva applikationslagerprotokollet. För att uttrycka det rakt på sak kan ingen mängd avancerade programmeringsspråk helt eliminera logiska fel i applikationslagret. Move kan förhindra de flesta av de underliggande säkerhetsriskerna, men det kan inte ersätta utvecklare med gränskontroll av affärslogik och spillskydd av matematiska operationer.
After investigating the Cetus exploit transaction, I believe I have identified the root cause of the bug. The issue stems from a type casting from u256 to u64 within the get_amount_by_liquidity function.
Visa original
53,94 tn
151
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.