Välkommen tillbaka till Sherlocks Vulnerability Spotlight, där vi lyfter fram en effektfull sårbarhet som upptäcktes under en Sherlock-granskning. Den här veckan undersöker vi en överbelastningsattack som hittades i @GMX_IO-tävlingen av @0xdeadbeef____ och @IllIllI000. Tacka @int0x1catedCode för uppdelningen.
Sammanfattning av sårbarheten: Sårbarheten gör det möjligt för en angripare att manipulera orderexekveringsflödet genom att tillhandahålla falska återställningsorsakslängder som inte matchar faktiska data. Detta gör att protokollets felhantering läser felaktiga minnesregioner, vilket kan störa körningsprocessen eller orsaka oväntat beteende vid bearbetning av misslyckade order.
Attacksteg: 1. Installationsfas Distribuera ett skadligt kontrakt som implementerar anpassat återställningsbeteende Det skadliga kontraktet ska kunna anropas av målprotokollet (t.ex. som återanropshanterare). 2. Skapa skadliga återställningsdata Strukturera återställ data med en förfalskad längdparameter. 3. Utför order genom protokoll Skapa en order som utlöser interaktion med det skadliga kontraktet När protokollet bearbetar ordern och anropar det skadliga kontraktet återgår det med de skapade data. Protokollets felhantering försöker avkoda återställningsorsaken med hjälp av den falska längden. 4. Lässpill för utlösarminne Protokollet läser minne baserat på parametern för falsk längd Detta gör att den läser utanför de faktiska återställningsdatagränserna.
Vad är effekten? Denial of Service: Order kan misslyckas med att utföras korrekt, vilket blockerar legitima protokolloperationer som likvidation av dåliga positioner Avbrott i orderutförandet: Batchorderbearbetning kan stoppas, vilket påverkar flera användare Gasgriefing: Bearbetning av felaktiga återställningsdata kan förbruka för mycket gas
Grundorsaken: 1. Omarkerade längdparametrar: Protokollet litar på längdvärdet som anges i återställningsdata utan validering 2. Gränskontroller saknas: Ingen verifiering av att den påstådda längden matchar den faktiska datastorleken
Åtgärden: 1. Validera alltid Återställ datalängd 2. Implementera gränser för maximal längd
Vi är stolta över att ha hjälpt till att säkra @GMX_IO genom denna upptäckt. När det absolut måste vara säkert är Sherlock det rätta valet.
Visa original
1,94 tn
11
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.