NotizieCryptoCosmos Labs ha sottovalutato il bug prima dell'exploit da 5,72 milioni di dollari su sei chain

Cosmos Labs ha sottovalutato il bug prima dell'exploit da 5,72 milioni di dollari su sei chain

Autore: Coindoo·

Punti chiave

  • Il Cosmos Hub stesso non è stato hackerato; la falla era nel software cosmos/evm utilizzato da sei reti, tra cui MANTRA, TAC e KiiChain.
  • Gli attaccanti hanno convertito o venduto circa 5,72 milioni di dollari, di cui circa 2,85 milioni tramite exchange centralizzati i cui conti sono stati successivamente congelati.
  • La vulnerabilità era un underflow di interi causato dalla sottrazione di importi delegati, inclusi token bloccati, da un saldo spendibile più piccolo, consentendo il furto diretto dei fondi delle vittime.
  • Cosmos Labs ha inizialmente giudicato erroneamente il bug come limitato dopo non essere riuscita a riprodurlo su chain a 18 decimali, e le successive patch silenziose mancavano di note che comunicassero che ritardare gli aggiornamenti metteva a rischio i fondi degli utenti.
  • Cosmos Labs prevede di ampliare la valutazione delle vulnerabilità, espandere e verificare la rete di contatti di sicurezza e sottoporsi a un audit esterno delle pratiche di sicurezza operativa.
Cosmos Labs ha sottovalutato il bug prima dell'exploit da 5,72 milioni di dollari su sei chain

Il Cosmos Hub non è stato hackerato

L'incidente non ha compromesso il Cosmos Hub, né tutte le blockchain del più ampio ecosistema Cosmos. La falla si trovava in cosmos/evm, un software condiviso che consente alle reti indipendenti basate su Cosmos di eseguire applicazioni compatibili con Ethereum.

Secondo il post-mortem di Cosmos Labs, sei reti che utilizzavano quel software sono state sfruttate tra il 20 e il 25 agosto. MANTRA, TAC e KiiChain sono state citate nella timeline dettagliata; il documento non ha identificato pubblicamente le altre tre.

Questa distinzione è importante: impedisce che un guasto di software condiviso si trasformi nel fuorviante titolo di "hack di Cosmos". La stessa regola di ambito si è applicata allo exploit del bridge di The Sandbox — un'integrazione compromessa non significava che l'intero protocollo sottostante fosse stato hackerato.

Gli attaccanti hanno convertito 5,72 milioni di dollari attraverso due vie

Cosmos Labs ha stimato che gli attaccanti abbiano scambiato circa 2,87 milioni di dollari tramite piattaforme decentralizzate, in base ai prezzi del 19 agosto. L'azienda ha descritto quella cifra come una stima non sottoposta a verifica indipendente. Altri 2,85 milioni di dollari sarebbero stati venduti tramite exchange centralizzati, portando il totale convertito o venduto a circa 5,72 milioni di dollari.

Cosmos Labs ha dichiarato che le chain colpite hanno riferito che i conti sugli exchange centralizzati erano stati congelati mentre le indagini della polizia proseguivano. Il totale di 5,72 milioni di dollari convertiti non cambierà, ma il recupero dei saldi congelati sugli exchange potrebbe ridurre la perdita netta finale.

Anche la risposta ha limitato i danni. Cosmos Labs ha collaborato con altre 13 reti potenzialmente esposte per applicare patch, fermare o comunque proteggerle senza ulteriori incidenti segnalati, coordinandosi complessivamente con 40 chain.

Come un disallineamento contabile ha esposto saldi validi

La vulnerabilità è nata da due parti del software che calcolavano i saldi in modo diverso. Lo StateDB di Cosmos EVM teneva traccia solo dell'importo che un account poteva spendere immediatamente. Un account di vesting Cosmos, tuttavia, poteva detenere sia token spendibili sia bloccati, e il sistema di staking consentiva di delegare i token bloccati.

Quando il software sottraeva l'intero importo delegato dal saldo spendibile più piccolo, un underflow aritmetico non verificato poteva far passare il risultato a un numero vicino a 2^256. Un attaccante poteva poi combinare tale underflow con un overflow durante un trasferimento. Questa classe di bug — underflow e overflow di interi nell'aritmetica senza segno — è una categoria ben documentata di vulnerabilità degli smart contract e delle blockchain, ed è uno dei motivi per cui i linguaggi moderni per smart contract includono l'aritmetica verificata per impostazione predefinita.

La sequenza non ha creato un aumento duraturo dell'offerta. Poteva invece azzerare l'account di una vittima con saldo elevato e lasciare all'attaccante il saldo precedentemente detenuto da quell'account. Ciò rendeva la falla un rischio diretto di furto di fondi, non semplicemente un display impreciso o un'anomalia contabile.

L'avvertimento è arrivato quasi quattro mesi prima degli attacchi

Il furto è stato l'epilogo di una sequenza più lunga. L'errore decisivo è avvenuto durante la valutazione iniziale, mesi prima che qualcuno sfruttasse il codice.

Cosmos Labs ha trattato una minaccia di produzione come manutenzione ordinaria

La proof of concept originale utilizzava una chain configurata con sei cifre decimali. Cosmos Labs ha testato configurazioni a 18 decimali, non è riuscita a riprodurre il risultato e ha concluso che le reti di produzione note fossero al sicuro. Tale conclusione era errata: il disallineamento dei saldi sottostante poteva riguardare ogni chain Cosmos EVM, indipendentemente dalla configurazione decimale.

Una volta che report successivi hanno stabilito la portata più ampia, Cosmos Labs sapeva che i fondi di produzione erano esposti. Ha scelto un processo di patching silenzioso volto a mettere il codice corretto nelle mani degli operatori senza pubblicare dettagli che potessero aiutare gli attaccanti.

Le versioni corrette erano disponibili circa 20 ore prima del primo attacco noto, ma le loro note non indicavano la gravità né avvertivano gli operatori che ritardare l'aggiornamento poteva esporre i fondi degli utenti. Gli operatori potevano vedere che le nuove versioni contenevano correzioni di sicurezza, ma le note non spiegavano che le chain non aggiornate rischiavano la potenziale perdita di fondi.

La divulgazione è diventata pubblica la mattina seguente. Una pull request in un fork a valle descriveva il percorso dell'exploit e identificava i tag di versione interessati circa 12 ore prima del primo attacco. La pull request pubblica ha offerto agli attaccanti un percorso più chiaro, e Cosmos Labs aveva già lasciato gli operatori senza un avvertimento che spiegasse l'urgenza.

Il dilemma affrontato da Cosmos Labs è noto nella sicurezza open source: divulgare pienamente una vulnerabilità può armare gli attaccanti prima che ogni operatore abbia applicato la patch, mentre restare in silenzio può lasciare gli operatori incapaci di valutare l'urgenza. Le pratiche di divulgazione coordinata nell'industria del software cercano di bilanciare esattamente questo compromesso, e questo incidente mostra cosa accade quando l'equilibrio sbaglia da entrambi i lati.

Cosmos non conosceva ogni chain da avvertire

Anche un processo di avviso privato funziona solo se i manutentori sanno chi contattare. Cosmos Labs ha dichiarato che l'ecosistema comprende più di 115 chain pubbliche note ma manca di un registro completo. Durante la risposta, ha appreso di 11 deployment Cosmos EVM non registrati nei suoi canali di sicurezza.

Cosmos Labs manteneva il codice condiviso senza conoscere ogni rete che lo aveva distribuito. Questa lacuna ha reso difficile inviare un avviso riservato prima di pubblicare informazioni sufficienti perché i team delle chain riconoscessero da soli la minaccia.

La timeline della risposta mostra anche perché il messaggio doveva essere esplicito. Dopo che MANTRA ha segnalato il primo attacco, Cosmos Labs ha inviato la prima email critica sicura circa due ore dopo. TAC è stata attaccata circa 45 ore dopo MANTRA nonostante le comunicazioni precedenti, e le indicazioni sono poi escalate fino a consigliare a tutte le chain Cosmos EVM di fermarsi.

Per le chain Cosmos EVM indipendenti, pubblicare il codice non è bastato. I loro team hanno comunque dovuto apprendere che l'aggiornamento era urgente e coordinare un rilascio con state-breaking.

Le chain vulnerabili devono aggiornarsi o fermarsi

L'avviso di sicurezza critico elenca come interessate le versioni precedenti alla 0.6.2 e le versioni dalla 0.7.0 fino, ma non compresa, alla 0.7.2. Gli operatori dovrebbero passare a Cosmos EVM 0.6.2, 0.7.2 o a una versione successiva.

Non esiste una soluzione basata solo sulla configurazione. Disabilitare il precompile di staking rimuove il trigger principale descritto nell'avviso, ma Cosmos Labs non considera tale passo un sostituto dell'aggiornamento. Una chain che non possa installare immediatamente una versione corretta dovrebbe fermarsi.

BTCPay ha recentemente emesso istruzioni simili, specifiche per versione dopo aver confermato il furto di fondi: aggiornare le installazioni interessate o metterle offline. In entrambi i casi, le indicazioni utili sono concrete perché il rischio dipende dalla versione del software in uso.

La prossima correzione è il processo di divulgazione

Cosmos Labs ha dichiarato che amplificherà la valutazione delle vulnerabilità oltre la proof of concept del segnalatore, espanderà la rete di contatti di sicurezza e verificherà che tali contatti rimangano reattivi. Prevede inoltre standard più chiari per patch private e silenziose, incluso quando i manutentori dovrebbero consigliare un arresto invece di un aggiornamento coordinato. È previsto anche un audit esterno delle pratiche di sicurezza operativa.

Questi cambiamenti affrontano la parte dell'incidente che un'altra patch del codice non può risolvere: come un gruppo decentralizzato di chain indipendenti riceve, comprende e agisce su un avviso sensibile al fattore tempo. La prima valutazione ha ristretto troppo rapidamente il bug. Il successivo processo di rilascio ha nascosto l'urgenza ad alcune delle persone che ci si aspettava installassero la correzione. Il codice era disponibile prima del primo attacco. Ciò che a diversi operatori mancava era un avvertimento che attendere sarebbe potuto costare i fondi degli utenti.

L'articolo ha finalità puramente informative e non costituisce consulenza finanziaria, di investimento o di sicurezza. Gli operatori di rete dovrebbero consultare l'avviso ufficiale di Cosmos EVM e verificare la versione distribuita.

Fonte: Coindoo