Populární témata
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Vítejte zpět u Sherlockova článku o zranitelnosti, kde upozorňujeme na závažnou zranitelnost odhalenou během Sherlockova auditu.
Tento týden se zabýváme případem odmítnutí služby zjištěným v soutěži @GMX_IO ze strany @0xdeadbeef____ a @IllIllI000.
Kredit @int0x1catedCode za poruchu.

Shrnutí chyby zabezpečení:
Tato chyba zabezpečení umožňuje útočníkovi manipulovat s tokem provádění příkazů tím, že poskytuje falešné délky důvodů vrácení, které neodpovídají skutečným datům. To způsobuje, že zpracování chyb protokolu čte nesprávné oblasti paměti, což může narušit proces provádění nebo způsobit neočekávané chování při zpracování neúspěšných objednávek.
Kroky útoku:
1. Fáze nastavení
Nasazení škodlivého kontraktu, který implementuje vlastní chování při vrácení
Škodlivý kontrakt by měl být nevyvolatelný cílovým protokolem (např. jako obslužná rutina zpětného volání).
2. Vytvořte škodlivá data pro vrácení
Struktura vrátí data pomocí zfalšovaného parametru length.
3. Proveďte příkaz prostřednictvím protokolu
Vytvořte objednávku, která spustí interakci se škodlivým kontraktem
Když protokol zpracuje objednávku a zavolá škodlivý kontrakt, vrátí se zpět s vytvořenými daty.
Zpracování chyb protokolu se pokouší dekódovat důvod vrácení pomocí falešné délky.
4. Spusťte přetečení čtení paměti
Protokol čte paměť na základě parametru fake length
To způsobí, že bude číst za skutečnými hranicemi dat pro obnovení.
Jaký to bude mít dopad?
Odmítnutí služby: Příkazy se nemusí provést správně, což blokuje legitimní operace protokolu, jako je likvidace špatných pozic
Přerušení provádění příkazů: Dávkové zpracování příkazů může být zastaveno, což ovlivní více uživatelů
Gas griefing: Zpracování chybně formátovaných revertovaných dat může spotřebovat nadměrné množství plynu
Hlavní příčina:
1. Nezaškrtnuté parametry délky: Protokol důvěřuje hodnotě délky uvedené v vrácených datech bez ověření
2. Chybějící kontroly hranic: Žádné ověření, zda deklarovaná délka odpovídá skutečné velikosti dat
Zmírnění rizik:
1. Vždy ověřte Vrátit délku dat
2. Implementujte limity maximální délky
Jsme hrdí na to, že jsme tímto objevem pomohli zajistit @GMX_IO.
Když je to nezbytně nutné zabezpečit, je Sherlock tou správnou volbou.
2,34K
Top
Hodnocení
Oblíbené