Recentul hack @ResupplyFi arată cum o simplă diviziune întreagă poate duce la manipularea catastrofală a seifului. Un exploit de 9,56 milioane de dolari executat în câteva ore de la implementare. Să analizăm această vulnerabilitate critică ERC4626 ↓
2/ Vector de atac: ERC4626 manipularea "primei donații": • Seif gol la implementare • Atacatorul depune 1 wei • Face donații mari de active • Prețul acțiunilor crește astronomic • Întreruperi de calcul al cursului de schimb al protocolului
3/ Vulnerabilitatea într-o singură linie: _exchangeRate = 1e36 / IOracle(_exchangeRateInfo.oracle).getPrices(address(collateral)); Împărțirea numerelor întregi fără protecție rotunjită → cursul de schimb se rotunjește la zero atunci când prețul oracolului este prea mare.
4/ Lanțul de exploatare: 1. Depuneți 1 wei în seiful gol 2. Donează pentru a umfla prețul acțiunilor 3. Oracle raportează un preț umflat 4. Cursul de schimb = 0 din cauza diviziunii 5. Verificarea LTV: 0 <= maxLTV (întotdeauna adevărat!) 6. Împrumut nelimitat deblocat
5/ Prevenirea este simplă: _exchangeRate = 1e36 / preț; require(_exchangeRate 0, "Rata nevalidă"); Și: • Aplicarea depozitelor minime • Adăugați verificări ale raportului de acțiuni • Monitorizați lichiditatea seifului
6/ Lecție cheie: seifurile ERC4626 au nevoie de protecție suplimentară la implementare. Problema "primului deponent" nu este nouă, dar ResupplyFi arată cum se poate transforma într-o vulnerabilitate critică. Citiți analiza tehnică completă pe blogul nostru:
3,72K