Ho visto che il capo di onekey sta difendendo i suoi diritti riguardo a Resupply, con perdite di diversi milioni di asset, e mi rendo conto che il Defi è davvero troppo fragile. Ho dato un'occhiata in giro e sembra che nessuno abbia spiegato chiaramente come il hacker abbia attaccato, quindi ho fatto un po' di ricerca e voglio condividerla con tutti: Il protagonista della storia è ResupplyPair, dove gli utenti possono prendere in prestito impegnando i propri asset. Il modificatore isSolvent nel contratto è responsabile del controllo della idoneità dell'utente a richiedere gli asset in prestito, e la logica del codice è la seguente: Possiamo vedere che alla riga 282 viene calcolato l'ltv; se abbiamo un modo per impostare _exchangeRate a 0, allora il controllo sarà sempre valido? Continuando a leggere il codice: Possiamo vedere che questo valore proviene dalla chiamata al oracolo getPrices, ed è il denominatore, in altre parole, dobbiamo far aumentare enormemente il prezzo del collateral. Leggendo il codice dell'oracolo, possiamo capire che getPrices è solo un livello di inoltro, in realtà chiama l'interfaccia convertToAssets di questo asset impegnato (cioè il tesoro). Continuando a leggere il codice: Possiamo vedere che questo risultato è composto da operazioni matematiche molto complesse; qui il hacker ha amplificato il numeratore, e ulteriormente total_assets, completando l'attacco. Controllando l'implementazione della funzione _total_assets possiamo scoprire: Questo valore è correlato al borrowed_token detenuto dal contratto controller di questo tesoro, cioè crvUSD. Fino a questo punto, l'analisi è chiara: ResupplyPair è stato creato utilizzando un tesoro vuoto, e il hacker ha trasferito una certa quantità di borrowed_token al contratto controller del tesoro, portando infine _exchangeRate a zero, permettendo così di amplificare indefinitamente il valore dei propri asset impegnati, prendendo in prestito fino a 10 milioni di reUSD con un costo estremamente basso. Transazione di attacco: Indirizzo del contratto ResupplyPair: Indirizzo del contratto controller del tesoro: Indirizzo del contratto del tesoro: Indirizzo del contratto oracolo:
Mostra originale
68.356
307
Il contenuto di questa pagina è fornito da terze parti. Salvo diversa indicazione, OKX non è l'autore degli articoli citati e non rivendica alcun copyright sui materiali. Il contenuto è fornito solo a scopo informativo e non rappresenta le opinioni di OKX. Non intende essere un'approvazione di alcun tipo e non deve essere considerato un consiglio di investimento o una sollecitazione all'acquisto o alla vendita di asset digitali. Nella misura in cui l'IA generativa viene utilizzata per fornire riepiloghi o altre informazioni, tale contenuto generato dall'IA potrebbe essere impreciso o incoerente. Leggi l'articolo collegato per ulteriori dettagli e informazioni. OKX non è responsabile per i contenuti ospitati su siti di terze parti. Gli holding di asset digitali, tra cui stablecoin e NFT, comportano un elevato grado di rischio e possono fluttuare notevolmente. Dovresti valutare attentamente se effettuare il trading o detenere asset digitali è adatto a te alla luce della tua situazione finanziaria.