Un atac sofisticat asupra Aevo-rebrand Ribbon Finance a drenat 2,7 milioane de dolari din contractul său vechi și a transferat către cincisprezece adrese de portofel separate, dintre care unele au fost deja consolidate în conturi mai mari.
Conform mai multor investigatori blockchain de pe platforma socială X, atacul a avut loc la doar șase zile după ce platforma și-a actualizat infrastructura oracle și procedurile de creare a opțiunilor. Ei au folosit un prompt de contract inteligent pentru a extrage sute de tokenuri Ethereum și alte active digitale.
Într-un fir explicând exploatarea, analistul de securitate Web3 Liyi Zhou a spus că un contract malițios a manipulat stiva oracle Opyn/Ribbon prin abuzarea proxy-urilor de feed de preț și a împins prețuri arbitrare de expirare pentru wstETH, AAVE, LINK și WBTC în oracle-ul partajat la un timestamp comun de expirare.
"Atacatorul a plasat poziții mari scurte de oToken împotriva MarginPool-ului Ribbon Finance, care a folosit aceste prețuri de expirare falsificate în pipeline-ul său de decontare și a transferat sute de WETH și wstETH, mii de USDC și mai multe WBTC către adrese de furt prin tranzacții redeem și redeemTo," a explicat Zhou.
Cu șase zile înainte de atac, echipa Ribbon Finance a actualizat prețuitorul oracle pentru a suporta 18 zecimale pentru stETH, PAXG, LINK și AAVE. Cu toate acestea, alte active, inclusiv USDC, erau încă la opt zecimale, iar conform lui Zhou, discrepanța în precizia zecimalelor a contribuit la vulnerabilitatea care a fost exploatată vineri.
Conform unui dezvoltator pseudonim cu numele de utilizator Weilin pe X, crearea oToken-urilor în sine nu a fost ilegală deoarece fiecare token subiacent trebuie să fie pe lista albă înainte de a fi utilizat ca garanție sau activ de strike, o procedură pe care atacatorul a urmat-o întocmai.
Activitatea malițioasă a început cu crearea unor produse de opțiuni prost structurate, unde un produs consta dintr-o opțiune call stETH cu un strike de 3.800 USDC, garantată cu WETH, setată să expire pe 12 decembrie. Atacatorul a creat apoi mai multe oToken-uri pentru aceste opțiuni, care au fost ulterior exploatate pentru a drena protocolul.
Atacul a implicat interacțiuni repetate cu contractul admin proxy la 0x9D7b…8ae6B76. Unele funcții, precum transferOwnership și setImplementation, au fost utilizate pentru a manipula proxy-urile de feed de preț prin apeluri delegate. Hackerul a invocat o implementare pentru oracle pentru a seta prețurile de expirare a activelor la același timestamp pentru a cauza evenimente ExpiryPriceUpdated care au confirmat evaluările frauduloase.
Prețurile manipulate au făcut sistemul să recunoască stETH ca fiind mult peste prețul de strike și a ars 225 de oToken-uri, producând 22.468662541163160869 WETH. În total, hackerul a extras aproximativ 900 ETH prin această metodă.
Firma de securitate Web3 Spectre a observat transferurile inițiale către o adresă de portofel la 0x354ad…9a355e, dar de acolo, banii au fost distribuiți către încă 14 conturi, multe deținând în jur de 100,1 ETH fiecare. O parte din fondurile furate au intrat deja în ceea ce Zhou a numit "TC" sau pool-uri de consolidare a trezoreriei.
Conform dezvoltatorului Monarch DeFi Anton Cheng, aplicația descentralizată Opyn susținută de Coinbase nu a fost compromisă așa cum se zvonea în discuțiile de pe Crypto Twitter.
Cheng a explicat că hack-ul Ribbon Finance a fost facilitat de un cod oracle actualizat care a permis în mod neintenționat oricărui utilizator să seteze prețuri pentru activele nou adăugate. El a indicat că atacul a început cu o tranzacție pregătitoare pentru a "pregăti terenul" prin generarea de oToken-uri prost structurate cu garanții legitime și active de strike. El a continuat să spună că token-urile false i-au permis hackerului să aleagă active subiacente bine cunoscute precum AAVE pentru a evita atragerea atenției și marcarea.
Hackerul a configurat apoi trei "subconturi", fiecare depunând garanții minime pentru a emite toate cele trei opțiuni. Toate subconturile au fost marcate ca tip 0, ceea ce înseamnă că erau complet garantate, dar absența unei limite maxime de plată pentru fiecare cont sau oToken a ajutat făptașul să dreneze active fără nicio restricție.
În sistemele Gamma ale Opyn, activul subiacent trebuie să corespundă cu garanția pentru opțiunile call și cu strike-ul pentru put-uri pentru a menține vânzătorii complet garantați. Dacă un oracle este compromis, doar vânzătorii pentru acel produs specific ar trebui să sufere.
Totuși, în acest caz, combinația dintre crearea noilor oToken-uri și oracle-ul manipulat a fost suficientă pentru a ocoli aceste protecții.
Nu doar citi știri crypto. Înțelege-le. Abonează-te la newsletter-ul nostru. Este gratuit.

