Il recente hack di @ResupplyFi mostra come una semplice divisione intera possa portare a una manipolazione catastrofica del vault. Un exploit da 9,56 milioni di dollari eseguito nel giro di poche ore dal deployment. Analizziamo questa critica vulnerabilità ERC4626 ↓
2/ Vettore di attacco: manipolazione della "prima donazione" ERC4626: • Vault vuoto al momento del deployment • L'attaccante deposita 1 wei • Effettua una grande donazione di asset • Il prezzo delle azioni si inflaziona astronomicamente • Il calcolo del tasso di cambio del protocollo si rompe
3/ La vulnerabilità in una riga: _exchangeRate = 1e36 / IOracle(_exchangeRateInfo.oracle).getPrices(address(collateral)); Divisione intera senza protezione per l'arrotondamento → il tasso di cambio si arrotonda a zero quando il prezzo dell'oracolo è troppo alto.
4/ La catena di exploit: 1. Deposita 1 wei in un vault vuoto 2. Dona per gonfiare il prezzo delle azioni 3. L'oracolo riporta un prezzo gonfiato 4. Tasso di cambio = 0 a causa della divisione 5. Controllo LTV: 0 <= maxLTV (sempre vero!) 6. Prestiti illimitati sbloccati
5/ La prevenzione è semplice: _exchangeRate = 1e36 / prezzo; require(_exchangeRate > 0, "Tasso non valido"); Inoltre: • Imporre depositi minimi • Aggiungere controlli sul rapporto di condivisione • Monitorare la liquidità del vault
6/ Lezione chiave: i vault ERC4626 necessitano di protezioni extra al momento del deployment. Il problema del "primo depositante" non è nuovo, ma ResupplyFi dimostra come possa trasformarsi in una vulnerabilità critica. Leggi l'analisi tecnica completa sul nostro blog:
3,4K