Un bug in OpenSea, il popolare mercato di NFT, ha permesso agli hacker di acquistare NFT rari per molto meno del valore di mercato, in alcuni casi portando a centinaia di migliaia di dollari di perdite per i proprietari originali - e centinaia di migliaia di dollari di profitti per gli apparenti ladri.
Il bug sembra essere presente da settimane e sembra essere menzionato in almeno un tweet del 1 gennaio 2022. Ma lo sfruttamento del bug è aumentato significativamente negli ultimi giorni: la società di analisi blockchain Elliptic ha riferito che in un periodo di 12 ore prima della mattina del 24 gennaio, è stato sfruttato almeno otto volte per "rubare" NFT con un valore di mercato di oltre 1 milione di dollari.
Uno degli NFT, Bored Ape Yacht Club #9991, è stato acquistato utilizzando la tecnica di exploit per 0,77 ETH ($ 1.760) e rapidamente rivenduto per 84,2 ETH (192.400$), facendo guadagnare all'attaccante un profitto di oltre 190.000 dollari. Un indirizzo Ethereum collegato al rivenditore aveva ricevuto più di 400 ETH (904.000$) in pagamenti da OpenSea in soltanto 12 ore.
"È una cosa soggettiva se si considera questa una scappatoia o un bug, ma il fatto è che le persone sono costrette a vendere ad un prezzo che altrimenti non avrebbero accettato in questo momento", ha detto Tom Robinson, capo e co-fondatore di Elliptic.
Secondo un thread su Twitter dello sviluppatore di software Rotem Yakir, il bug è causato da una mancata corrispondenza tra le informazioni disponibili negli smart contract NFT e le informazioni presentate dall'interfaccia utente di OpenSea. Essenzialmente, gli aggressori stanno approfittando di vecchi contratti che persistono sulla blockchain ma non sono più presenti nel listino di prodotti in vendita su OpenSea.
Gli utenti di OpenSea vendono NFT impostando un "prezzo di listino" che i potenziali acquirenti possono vedere. A causa della natura degli smart contract, se un acquirente accetta quel prezzo di listino, l'NFT viene automaticamente trasferito a lui. Se un proprietario vuole reinserire un NFT per un prezzo di vendita più alto, il modo corretto per farlo è quello di annullare il primo annuncio rescindendo lo smart contract, pagando però una "gas fee" che potrebbe essere di decine o centinaia di dollari, così alcuni utenti hanno aggirato questo problema trasferendo il NFT in un altro wallet e poi di nuovo al portafoglio originale. Mentre questa tecnica ha apparentemente rimosso l'annuncio dal front-end di OpenSea, l'annuncio originale è rimasto attivo sulla blockchain e potrebbe essere trovato attraverso le API di OpenSea. Così è possibile "forzare" la vendita dell'NFT per il vecchio prezzo dell'annuncio.
Non è chiaro se OpenSea sta trattando la situazione come una falla di sicurezza aperta o un risultato di un errore dell'utente. La società non ha attualmente rilasciato alcun comunicato al riguardo.