🧵1/ ⚠️ Analiza exploatărilor: Pierdere de 80 de milioane de dolari în atacul Resolv Labs Mai devreme astăzi, @ResolvLabs a fost exploatată din cauza unei defecțiuni a mecanismului său centralizat de validare a parametrilor. Cu doar ~200.000$ în capital, atacatorul a bătut 50.000 și 30.000 milioane USR folosind fiecare câte 100.000 USDC, ceea ce a dus la o pierdere totală de aproximativ 80.000 de dolari. După incident, stablecoin-ul $USR temporar redus la 0,051 dolari.
🧵2/ Mecanism de atac Funcția completeSwap din contractul de #TheCounter al Resolv Labs permite determinarea cantității de $USR bătute prin parametrul _targetAmount.
🧵3/ Funcția completeSwap verifică dacă adresa apelantului (msg.sender) trebuie să conțină SERVICE_ROLE. Aceasta înseamnă că, după ce un utilizator trimite o tranzacție de swap, echipa de proiect trebuie să efectueze o validare centralizată a parametrilor precum _targetAmount, iar abia după confirmarea corectitudinii va chema această funcție pentru a finaliza tranzacția. Pe baza celor două tranzacții de atac, 100.000$ USDC corespundeau _targetAmount valori de 50M și, respectiv, 30M USR. Este evident că mecanismul _targetAmount de validare al proiectului a eșuat. Deoarece validarea _targetAmount este centralizată și nu open-source, cauza principală nu poate fi determinată în această etapă. Posibilități precum implicarea unui insider, compromiterea sistemului centralizat sau scurgerea cheii private SERVICE_ROLE nu pot fi excluse.
2/ Mecanism de atac Funcția completeSwap din contractul de #TheCounter al Resolv Labs permite determinarea cantității de $USR bătute prin parametrul _targetAmount.
2,19K