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.
1,79 tis.
11
Obsah na této stránce poskytují třetí strany. Není-li uvedeno jinak, společnost OKX není autorem těchto informací a nenárokuje si u těchto materiálů žádná autorská práva. Obsah je poskytován pouze pro informativní účely a nevyjadřuje názory společnosti OKX. Nejedná se o doporučení jakéhokoli druhu a nemělo by být považováno za investiční poradenství ani nabádání k nákupu nebo prodeji digitálních aktiv. Tam, kde se k poskytování souhrnů a dalších informací používá generativní AI, může být vygenerovaný obsah nepřesný nebo nekonzistentní. Další podrobnosti a informace naleznete v připojeném článku. Společnost OKX neodpovídá za obsah, jehož hostitelem jsou externí weby. Držená digitální aktiva, včetně stablecoinů a tokenů NFT, zahrnují vysokou míru rizika a mohou značně kolísat. Měli byste pečlivě zvážit, zde je pro vás obchodování s digitálními aktivy nebo jejich držení vhodné z hlediska vaší finanční situace.