Welkom terug bij Sherlock’s Vulnerability Spotlight, waar we een impactvolle kwetsbaarheid belichten die is ontdekt tijdens een Sherlock-audit.
Deze week onderzoeken we een denial-of-service die is gevonden in de @GMX_IO-wedstrijd door @0xdeadbeef____ en @IllIllI000.
Credits aan @int0x1catedCode voor de uitleg.

Samenvatting van de kwetsbaarheid:
De kwetsbaarheid stelt een aanvaller in staat om de uitvoeringsstroom van bestellingen te manipuleren door valse lengtes van terugkeerredenen te geven die niet overeenkomen met de werkelijke gegevens. Dit zorgt ervoor dat de foutafhandeling van het protocol onjuiste geheugengebieden leest, wat mogelijk het uitvoeringsproces verstoort of onverwacht gedrag veroorzaakt bij het verwerken van mislukte bestellingen.
Aanvalstappen:
1. Opzetfase
Zet een kwaadaardig contract op dat aangepaste revert-gedragingen implementeert.
Het kwaadaardige contract moet aanroepbaar zijn door het doelprotocol (bijv. als callback-handler).
2. Maak Kwaadaardige Revert-gegevens
Structuur de revert-gegevens met een vervalst lengteparameter.
3. Voer Order Uit Via Protocol
Creëer een order die interactie met het kwaadaardige contract zal triggeren.
Wanneer het protocol de order verwerkt en het kwaadaardige contract aanroept, revert het met de gemaakte gegevens.
De foutafhandelingsmechanismen van het protocol proberen de revert-reden te decoderen met behulp van de nep lengte.
4. Trigger Geheugenleestoegang Overflow
Het protocol leest geheugen op basis van de nep lengteparameter.
Dit zorgt ervoor dat het buiten de werkelijke grenzen van de revert-gegevens leest.
Wat is de impact?
Denial of Service: Orders kunnen niet goed worden uitgevoerd, waardoor legitieme protocoloperaties zoals liquidatie van slechte posities worden geblokkeerd.
Onderbreking van orderuitvoering: Batchorderverwerking kan worden stopgezet, wat meerdere gebruikers beïnvloedt.
Gas griefing: Het verwerken van verkeerd gevormde revert-gegevens kan overmatige gas verbruiken.
De Oorzaak:
1. Ongecontroleerde lengteparameters: Het protocol vertrouwt op de lengtewaarde die in de revert-gegevens is opgegeven zonder validatie
2. Ontbrekende grenscontroles: Geen verificatie dat de opgegeven lengte overeenkomt met de werkelijke gegevensgrootte
De mitigatie:
1. Valideer altijd de lengte van de terugkeerdata
2. Implementeer maximale lengtelimieten
We zijn er trots op @GMX_IO te hebben geholpen met deze ontdekking.
Wanneer het absoluut veilig moet zijn, is Sherlock de juiste keuze.
1,79K
11
De inhoud op deze pagina wordt geleverd door derden. Tenzij anders vermeld, is OKX niet de auteur van het (de) geciteerde artikel(en) en claimt geen auteursrecht op de materialen. De inhoud is alleen bedoeld voor informatieve doeleinden en vertegenwoordigt niet de standpunten van OKX. Het is niet bedoeld als een goedkeuring van welke aard dan ook en mag niet worden beschouwd als beleggingsadvies of een uitnodiging tot het kopen of verkopen van digitale bezittingen. Voor zover generatieve AI wordt gebruikt om samenvattingen of andere informatie te verstrekken, kan deze door AI gegenereerde inhoud onnauwkeurig of inconsistent zijn. Lees het gelinkte artikel voor meer details en informatie. OKX is niet verantwoordelijk voor inhoud gehost op sites van een derde partij. Het bezitten van digitale activa, waaronder stablecoins en NFT's, brengt een hoge mate van risico met zich mee en de waarde van deze activa kan sterk fluctueren. Overweeg zorgvuldig of de handel in of het bezit van digitale activa geschikt voor je is in het licht van je financiële situatie.