Crypto Prices

L’exploit di FlashLoopAdapter prosciuga 305.000 dollari dai portafogli Safe collegati ad Aave

prima di 1 ora
2 minuti letti
1 visualizzazioni

Attacco al FlashLoopAdapter di Aave v3

Un FlashLoopAdapter personalizzato, utilizzato per gestire posizioni a leva di Aave v3, è stato sfruttato su Ethereum, causando perdite stimate a 305.000 dollari in due portafogli Safe. L’attaccante è riuscito a eludere i controlli di accesso del modulo. La società di sicurezza blockchain SlowMist ha dichiarato che l’attaccante ha sfruttato un difetto di autenticazione nel contratto FlashLoopAdapter, permettendo a un falso Safe di superare i controlli destinati a limitare l’accesso ai portafogli che avevano abilitato il modulo. Alla fine, l’attaccante ha trattenuto circa 114,09 ETH dopo aver utilizzato il modulo per manipolare le posizioni detenute dai portafogli interessati.

SlowMist ha emesso un avviso riguardante la perdita nel modulo Safe Loop: ~114,09 ETH. La causa principale è stata identificata nel controllo di accesso open/close di FlashLoopAdapter, che verifica solo se ISafe(msg.sender).isModuleEnabled(address(this)), un controllo facilmente falsificabile tramite un falso Safe che restituisce sempre true.

Dettagli dell’Attacco

L’incidente ha coinvolto un contratto personalizzato costruito sopra Aave, piuttosto che il protocollo core Aave v3. Defimon Alerts, che ha rilevato l’attacco alle 15:08:57 UTC del 1 ottobre, ha confermato che Aave v3 stesso non è stato colpito.

FlashLoopAdapter è un modulo Safe che apre e chiude loop a leva di Aave v3 per i Safe che lo abilitano. I controlli di accesso del modulo si sono rivelati inadeguati. SlowMist ha identificato che la vulnerabilità era nei controlli di accesso utilizzati dalle funzioni open e close dell’adattatore. Invece di stabilire in modo indipendente che il chiamante fosse un Safe legittimo, le funzioni controllavano se ISafe(msg.sender).isModuleEnabled(address(this)) restituisse true. Un attaccante potrebbe implementare un contratto Safe falso programmato per restituire true quando il FlashLoopAdapter effettuava il controllo.

Meccanismo dell’Attacco

Defimon Alerts ha affermato che i controlli eseguiti durante il callback non hanno fermato la transazione perché il contratto dell’attaccante agiva anche come fornitore di liquidità flash. Un’altra funzione, _swap, ha quindi consentito una chiamata diretta a un swapRouter utilizzando swapCalldata fornito dal chiamante. Entrambi gli input potevano essere controllati dall’attaccante.

Invece di fornire un normale router di scambio, l’attaccante ha impostato il router su uno dei portafogli Safe vittima. Il calldata è stato impostato per chiamare execTransactionFromModule, una funzione Safe che consente a un modulo abilitato di eseguire una transazione. FlashLoopAdapter era già abilitato dal Safe vittima, quindi la chiamata risultante è stata accettata.

Conseguenze e Riflessioni

Un problema simile riguardante i permessi associati ai moduli Safe era emerso a settembre. Un exploit di un portafoglio Safe su Ethereum, che coinvolgeva circa 2.900 rsETH, è stato rintracciato da BlockSec a controlli di autorizzazione deboli in un contratto executor collegato a un modulo Safe abilitato.

Il fondatore e CEO di Aave, Stani Kulechov, ha dichiarato che il contratto interessato era un adattatore esterno di terze parti costruito sopra Aave e aveva “zero effetto su Aave v3.” Questo non è un contratto Aave v3, è un adattatore esterno di terze parti costruito sopra Aave, senza alcun effetto su Aave v3.

SlowMist ha identificato l’indirizzo dell’attaccante come 0x42c2633438609881c8fBAb82414eb9A0c45F9353, mentre il contratto vulnerabile FlashLoopAdapter è stato elencato come 0x16bb8b912da187870c23ec6756bb3fad061283d8. La sequenza di attacco ha combinato l’autenticazione falsificata del Safe con il controllo sui parametri del router e del calldata dell’adattatore.

SlowMist ha classificato l’incidente come una vulnerabilità del contratto intelligente e ha stimato la perdita risultante a 305.000 dollari.

Popolare