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.
Zobrazit originál
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.