Niedawny hack @ResupplyFi pokazuje, jak prosta dzielenie całkowite może prowadzić do katastrofalnej manipulacji w skarbcach. Wykorzystanie o wartości 9,56 miliona dolarów zrealizowane w ciągu kilku godzin od wdrożenia. Rozłóżmy tę krytyczną podatność ERC4626 ↓
2/ Wektor ataku: manipulacja "pierwszą darowizną" ERC4626: • Pusty skarbiec przy wdrożeniu • Napastnik wpłaca 1 wei • Dokonuje dużej darowizny aktywów • Cena akcji inflatuje astronomicznie • Obliczenia kursu wymiany protokołu się łamią
3/ Luka w jednej linii: _exchangeRate = 1e36 / IOracle(_exchangeRateInfo.oracle).getPrices(address(collateral)); Dzielenie całkowite bez ochrony zaokrąglenia → kurs wymiany zaokrągla się do zera, gdy cena z orakula jest zbyt duża.
4/ Łańcuch exploitów: 1. Wpłać 1 wei do pustego skarbca 2. Przekaż darowiznę, aby zwiększyć cenę akcji 3. Oracle zgłasza zawyżoną cenę 4. Kurs wymiany = 0 z powodu dzielenia 5. Sprawdzenie LTV: 0 <= maxLTV (zawsze prawda!) 6. Odblokowane nieograniczone pożyczki
5/ Zapobieganie jest proste: _exchangeRate = 1e36 / cena; require(_exchangeRate 0, "Nieprawidłowa stawka"); Również: • Wymuszaj minimalne wpłaty • Dodaj kontrole proporcji udziałów • Monitoruj płynność skarbca
6/ Kluczowa lekcja: Skarbce ERC4626 potrzebują dodatkowej ochrony podczas wdrażania. Problem "pierwszego deponującego" nie jest nowy, ale ResupplyFi pokazuje, jak może on prowadzić do krytycznej podatności. Przeczytaj pełną analizę techniczną na naszym blogu:
3,61K