Bine ați revenit la Sherlock's Vulnerability Spotlight, unde evidențiem o vulnerabilitate de impact descoperită în timpul unui audit Sherlock.
Săptămâna aceasta, examinăm un refuz al serviciului găsit în concursul @GMX_IO de către @0xdeadbeef____ și @IllIllI000.
Merit lui @int0x1catedCode pentru defalcare.

Rezumatul vulnerabilității:
Vulnerabilitatea permite unui atacator să manipuleze fluxul de execuție a comenzilor prin furnizarea de lungimi false ale motivelor de revenire care nu se potrivesc cu datele reale. Acest lucru face ca gestionarea erorilor de protocol să citească regiuni de memorie incorecte, perturbând potențial procesul de execuție sau provocând un comportament neașteptat la procesarea comenzilor eșuate.
Pașii de atac:
1. Faza de configurare
Implementarea unui contract rău intenționat care implementează un comportament de revenire personalizat
Contractul rău intenționat ar trebui să poată fi invocat de protocolul țintă (de exemplu, ca handler de apelare inversă).
2. Creați date de revenire rău intenționate
Structurați datele de revenire cu un parametru de lungime falsificat.
3. Executați ordinul prin protocol
Creați o comandă care va declanșa interacțiunea cu contractul rău intenționat
Când protocolul procesează comanda și apelează contractul rău intenționat, acesta revine cu datele create.
Gestionarea erorilor protocolului încearcă să decodeze motivul de revenire folosind lungimea falsă.
4. Declanșați depășirea citirii memoriei
Protocolul citește memoria pe baza parametrului de lungime fals
Acest lucru face ca acesta să citească dincolo de limitele reale ale datelor de revenire.
Care este impactul?
Refuzul serviciului: Ordinele pot eșua să fie executate corect, blocând operațiunile legitime de protocol, cum ar fi lichidarea pozițiilor greșite
Întreruperea execuției comenzilor: Procesarea comenzilor în lot poate fi oprită, afectând mai mulți utilizatori
Griefing cu gaz: procesarea datelor de revenire malformate poate consuma gaz excesiv
Cauza principală:
1. Parametri de lungime neverificați: Protocolul are încredere în valoarea lungimii furnizată în datele de revenire fără validare
2. Lipsa verificărilor limitelor: Nu se verifică dacă lungimea revendicată corespunde dimensiunii reale a datelor
Atenuarea:
1. Validați întotdeauna lungimea datelor de revenire
2. Implementați limite maxime de lungime
Suntem mândri că am ajutat la asigurarea @GMX_IO prin această descoperire.
Când trebuie neapărat să fie sigur, Sherlock este alegerea potrivită.
1,94 K
11
Conținutul de pe această pagină este furnizat de terți. Dacă nu se menționează altfel, OKX nu este autorul articolului citat și nu revendică niciun drept intelectual pentru materiale. Conținutul este furnizat doar pentru informare și nu reprezintă opinia OKX. Nu este furnizat pentru a fi o susținere de nicio natură și nu trebuie să fie considerat un sfat de investiție sau o solicitare de a cumpăra sau vinde active digitale. În măsura în care AI-ul de generare este utilizat pentru a furniza rezumate sau alte informații, astfel de conținut generat de AI poate să fie inexact sau neconsecvent. Citiți articolul asociat pentru mai multe detalii și informații. OKX nu răspunde pentru conținutul găzduit pe pagini terțe. Deținerile de active digitale, inclusiv criptomonedele stabile și NFT-urile, prezintă un grad ridicat de risc și pot fluctua semnificativ. Trebuie să analizați cu atenție dacă tranzacționarea sau deținerea de active digitale este adecvată pentru dumneavoastră prin prisma situației dumneavoastră financiare.