Qualche giorno fa il celebre hacker Jay Freeman, alias Saurik, ha scoperto un pericoloso bug sul protocollo dei nano payment usato dal second layer di Ethereum Optimism.
Last week, I discovered (and reported) a critical bug (which has been fully patched) in @optimismPBC (a "layer 2 scaling solution" for Ethereum) that would have allowed an attacker to print arbitrary quantity of tokens, for which I won a $2,000,042 bounty. https://t.co/J6KOlU8aSW
— Jay Freeman (saurik) (@saurik) February 10, 2022
Summary
Il bug su Optimism, second layer di Ethereum
Lo sfruttamento del bug avrebbe consentito ad un utente malintenzionato di creare quantità illimitate di token.
Saurik ha deciso di non sfruttare questo bug, ma di segnalarlo direttamente ad Optimism che ha poi corretto la falla. Il problema quindi ora risulta essere stato risolto, e Freeman dichiara di aver ricevuto una ricompensa da oltre due milioni di dollari.
Il bug poteva essere sfruttato su qualsiasi chain collegata ad Optimism, utilizzando il fork “OVM 2.0” di go-ethereum (l2geth).
Il pericolo del bug di Optimism
Optimism attualmente utilizza un “sequencer” centralizzato, quindi ha potuto intervenire rapidamente sia per correggere il bug sui propri nodi e sulla propria infrastruttura, sia per organizzare interventi sui progetti a valle che utilizzavano il loro codice di base (Boba e Metis).
Saurik ha denominato questo bug “Unbridled Optimism”, rivelando che affliggeva la macchina virtuale che esegue smart contract su Optimism. Sfruttandolo si poteva avere accesso ad un numero effettivamente illimitato di token IOU, ed in particolare di token OETH, scambiabili poi regolarmente in ETH.
Questi scambi avrebbero potuto essere eseguiti su un exchange decentralizzato, dove sarebbe stato letteralmente impossibile bloccarli o annullarli.
Il fatto è che se fosse stato sfruttato, fino a che qualcuno non si fosse reso conto che c’era qualcosa che non andava l’attaccante poteva di fatto manipolare i mercati, acquistando a prezzo zero enormi quantità di reali ETH. Inoltre coloro che avessero venduto i loro ETH in cambio ad esempio degli OETH creati dal nulla dall’attaccante, si sarebbero trovati in portafoglio un token di valore molto vicino allo zero.
Saurik dice:
“Questo rende il bug capace di attacchi economici di tipo “griefing”, in cui una volta che qualcuno se ne accorge – anche se è solo un’ora dopo! – potrebbe essere “troppo tardi” per svelare quali siano, e quali non siano, transazioni legittime, mettendo in discussione l’intero registro”.
Pertanto il bug di fatto non affliggeva solo Optimism, ma avrebbe potuto avere ricadute gravi anche sui mercati crypto legittimi, ed in particolare sugli exchange decentralizzati, anche se questi non ne erano direttamente afflitti.
Bisogna ricordare che i second layer su Ethereum non sono ampiamente in uso da ancora molto tempo, quindi è possibile che qualche bug ancora ci sia.