Pe 7 mai 2026, în blocul 25039669 al rețelei Ethereum, un atacator a apelat de patru ori, în interiorul aceleiași tranzacții, o funcție vulnerabilă din proxy-ul RFQ operat de TrustedVolumes. Fiecare apel a scos câte un activ din trezorerie. La final, inventarul protocolului era mai sărac cu 5,87 milioane de dolari, distribuiți între USDC, USDT, WETH și WBTC. Costul tehnic al atacului a fost de patru wei USDC, adică sub o miime de cent.
TrustedVolumes opera ca furnizor de lichiditate și resolver în ecosistemul Fusion al protocolului 1inch, o piesă activă în mecanica de market making pentru un agregator cunoscut. Contractul prin care își administra inventarul fusese însă construit intern și conectat la trezorerie prin aprobări ERC-20 nelimitate, o alegere arhitecturală care a transformat o eroare obișnuită într-o vulnerabilitate cu consecințe directe.
Informația vine de la Cryptology.ro, publicația care urmărește îndeaproape piața crypto pentru cititorul român. Mihai Popa, analist și jurnalist al platformei, a reconstituit pas cu pas mecanismul prin care cele patru active au părăsit inventarul TrustedVolumes, recompunând traseul tranzacției și identificând cauzele tehnice care au făcut atacul posibil.
Nu vorbim despre o vulnerabilitate de tip zero-day și nici despre chei private compromise. Codul era public, iar problema centrală putea fi văzută cu ochiul liber de oricine înțelegea ce înseamnă o verificare de autorizare făcută corect. Trei greșeli s-au compus într-o singură arhitectură, iar atacatorul a trecut prin ele fără să forțeze nimic.
Anatomia exploit-ului
Atacul a fost identificat ulterior, în reconstrucția Foundry publicată de cercetătorul cunoscut online drept banteg, ca o eroare clasică de delimitare a autorizării. Tipologia nu este nouă pe Ethereum. Cazuri similare apar de la afacerea Parity Multisig din 2017 încoace. Surprinde totuși că, în 2026, aceeași clasă de greșeală apare într-un contract care păzește milioane de dolari în trezoreria unui operator activ pe piață.
Ecouri ale aceluiași tipar se regăsesc în mai multe incidente recente. Truebit a pierdut 26 de milioane de dolari printr-o breșă veche de cinci ani, un caz în care erori de cod au stat ascunse mult timp până când cineva s-a apucat să citească cu atenție. Episodul TrustedVolumes nu face decât să prelungească firul.
Funcția care lăsa pe oricine să semneze
Totul a pornit de la o funcție numită registerAllowedOrderSigner, lăsată deschisă oricui voia să o cheme. Orice adresă de pe Ethereum putea să o apeleze și să se înregistreze drept semnatar valid pentru un anumit maker, fără să întâlnească vreun control de proprietate sau vreo verificare de rol. Atacatorul s-a înregistrat pe sine ca semnatar pentru propria adresă în calitate de maker și a devenit, dintr-o singură mișcare, un participant tehnic recunoscut de logica protocolului.
Lipsa unui modificator de tipul onlyOwner sau a unei verificări împotriva unei liste de adrese autorizate intră, în terminologia auditorilor de smart contracts, în categoria anti-pattern-urilor recunoscute de aproape un deceniu. Faptul că o astfel de funcție a ajuns într-un contract de producție păzind milioane sugerează ceva mai grav decât o scăpare punctuală.
Verificarea care confunda două identități
A doua vulnerabilitate transformă prima într-o problemă financiară reală. La executarea funcției fillOrder, contractul verifica dacă semnatarul ordinului era autorizat, dar făcea verificarea folosind ca cheie adresa takerului, adică a celui care apela funcția, în loc să folosească adresa makerului care deținea efectiv inventarul. SlowMist a documentat această greșeală în analiza tehnică publicată după incident.
Tradus simplu, contractul confirma că atacatorul are dreptul să semneze pentru sine, lucru trivial adevărat după înregistrarea de la pasul anterior, fără să verifice nicăieri dacă semnatarul are vreo legătură cu fondurile pe care urma să le miște. Autentificarea și autorizarea, două întrebări fundamental diferite, au fost tratate ca aceeași întrebare.
Aprobările nelimitate, cealaltă față a problemei
A treia componentă vine din modul în care contractul determina sursa transferului. Codul folosea câmpul taker din structura ordinului drept adresă „from”, iar atacatorul a setat acel taker egal cu adresa care deținea inventarul TrustedVolumes. Pe această ramură de execuție, autorizarea către contractul proxy fusese acordată sub forma unor aprobări ERC-20 nelimitate. Proxy-ul putea, tehnic, să mute orice token de pe adresa care deținea inventarul, fără nicio semnătură suplimentară.
Aprobările nelimitate sunt o practică comună în DeFi, justificată prin eficiența operațională pe care o aduc. Pentru un protocol care păzește trezorerie reală, costul scăzut al unei aprobări permanente devine, până la urmă, riscul cel mai mare în absența unui audit suficient. Atacul asupra Aperture Finance soldat cu 3,4 milioane de dolari furați a arătat aceeași logică acum câteva luni, pe o scară diferită.
La toate acestea s-a adăugat un bug subtil de protecție anti-replay. Variabila saltStatus, gândită să marcheze ordinele deja executate, scria într-o cheie de storage și citea, în momentul verificării, dintr-o cheie diferită. Fiecare dintre cele patru apeluri consecutive a trecut testul fără rezistență, fiindcă testul nu avea cum să vadă urmele apelului anterior.
Cum au reacționat firmele de securitate
CertiK a fost prima firmă care a semnalat atacul, printr-o postare publică ce descria deja, în câteva fraze, mecanismul exact al exploit-ului. Avertismentul recomanda revocarea aprobărilor către contractul vulnerabil, sfat venit însă târziu, întrucât tranzacția se închisese deja. Șaizeci de secunde mai târziu apărea Blockaid cu o relatare mai detaliată, urmată curând de SlowMist și de reconstrucția Foundry semnată banteg, care reproduce atacul pas cu pas într-un fork al blocului în care exploit-ul fusese executat.
Echipa TrustedVolumes a confirmat oficial incidentul abia după aproximativ două ore și jumătate de la primul alert public. Postarea de pe X oferea o adresă de bug bounty și invitația standard la „comunicare constructivă”, fără să intre în detalii arhitecturale. Era, de altfel, prima activitate publică a protocolului pe Twitter după o tăcere care depășea un an.
Pe site-ul oficial nu se găsește niciun audit publicat al implementării RFQ. Codul sursă nu a fost niciodată verificat pe Etherscan, ceea ce însemna că singurul mod de a inspecta logica reală era reverse engineering pe bytecode. Pentru o piesă de cod care păzea aprobări nelimitate peste un inventar de milioane, absența documentației publice și a verificării sursei spune mai mult decât orice declarație oficială ulterioară.
O analiză detaliată a fiecăreia dintre cele trei vulnerabilități compuse, alături de reconstrucția traseului on-chain al activelor drenate, a fost prezentată pe larg de Mihai Popa, editorialist și specialist al platformei Cryptology.ro, una dintre puținele surse autohtone care abordează exploit-urile DeFi cu acest nivel de profunzime tehnică.
Atacatorul a folosit un contract dedicat, lansat la o adresă cu prefixul 0xD4D5DB5E, prin care a jucat simultan rolurile de maker și receiver, a primit activele drenate și le-a consolidat rapid în două portofele finale. WETH-ul a fost desfăcut în ETH lichid în câteva minute, fără ca presiunea comunitară să apuce să producă vreun efect asupra traseului de spălare.
Un context care confirmă o tendință
Pierderea TrustedVolumes nu vine pe un cer senin. Luna aprilie 2026 a fost deja consemnată ca un record recent al furturilor în spațiul DeFi, cu 635 de milioane de dolari sustrași în 28 de incidente separate, conform unei sinteze publicate de The Defiant. A fost cea mai gravă lună înregistrată din februarie 2025, momentul în care spargerea Bybit produsese un șoc similar pentru piață.
Tipologia variază, dar miezul rămâne neschimbat. Fiecare incident apare îmbrăcat într-un detaliu tehnic propriu, însă în spatele detaliilor se află, de cele mai multe ori, aceeași structură. Cineva a construit un contract care mișca bani, a sărit peste validarea critică și a presupus că nimeni nu va citi codul cu atenție. Stablecoinul USR de la Resolv Labs s-a prăbușit cu 80% după un exploit de 25 de milioane de dolari și atacul de 10 milioane de dolari asupra THORChain confirmă, pe vectori diferiți, același principiu.
În primele cinci luni ale anului 2026, totalul fondurilor sustrase din protocoale DeFi se apropie de pragul de două miliarde de dolari, conform datelor compilate de Chainalysis și Hacken pe parcursul aceleiași perioade. TrustedVolumes este al treilea protocol semnificativ atacat în primele zece zile ale lunii mai, iar repetiția nu mai surprinde pe nimeni dintre observatorii spațiului. Cazuri precum bursa Stabble de pe Solana, care a cerut retragerea urgentă a fondurilor după descoperirea unui spion nord-coreean, arată că vectorul nu se limitează la cod, ci atinge și partea umană a echipelor care construiesc DeFi.
Întrebarea care rămâne deschisă
Reconstrucția lui banteg a arătat că exploit-ul putea fi executat de orice adresă cu fonduri minime și un sfert de oră de atenție pentru a citi codul public. O barieră de patru wei USDC separa inventarul TrustedVolumes de oricine se ostenea să arunce o privire serioasă peste proxy. Observația aceasta, mai mult chiar decât suma efectiv pierdută, este partea cu adevărat tulburătoare a întregii povești.
Adresa de bug bounty rămâne deschisă, iar pe ea se construiește singurul scenariu favorabil care le mai rămâne celor de la TrustedVolumes. O recuperare parțială este posibilă printr-o negociere directă sau prin presiune comunitară, dar nu rezolvă problemele structurale care au făcut posibil incidentul. Recuperarea de fonduri, când se întâmplă, rămâne o ușurare contabilă, nu o lecție tehnică pentru cei care construiesc DeFi.
Vectorii se schimbă de la o lună la alta, dar logica subiacentă rămâne aceeași. Cineva a construit ceva care păzea active reale și a sărit peste partea în care se întreba dacă a construit acel ceva în siguranță.
Dacă a fost nevoie de o pierdere de 5,87 milioane de dolari pentru ca echipa TrustedVolumes să accepte că proxy-ul ei merita o revizuire externă, atunci ce plan funcționa pentru perioada de dinaintea apariției atacatorului rămâne, deocamdată, o întrebare fără răspuns. Judecând după tiparul ultimilor ani, ea își va găsi următoarea formulare abia după următorul drenaj de aceleași dimensiuni, dintr-un alt protocol care nu se aștepta să fie vreodată citit cu atenție.






