Нещодавній хак @ResupplyFi показує, як просте цілочисельне ділення може призвести до катастрофічних маніпуляцій зі сховищем. Експлойт вартістю 9,56 мільйона доларів був виконаний протягом кількох годин після розгортання. Давайте розберемо цю критичну вразливість ERC4626 ↓
2. Вектор атаки: ERC4626 маніпуляції «першим донатом»: • Порожнє сховище при розгортанні • Депозити зловмисника 1 вей • Робить пожертвування великих активів • Ціна акцій зростає астрономічно • Перерви в розрахунку обмінного курсу протоколу
3. Вразливість в одному рядку: _exchangeRate = 1e36 / IOracle(_exchangeRateInfo.oracle).getPrices(address(collateral)); Цілочисельне ділення без захисту від округлення → курс валют округлюється до нуля, коли ціна оракула занадто велика.
4. Ланцюжок експлойтів: 1. Покладіть 1 вей у порожнє сховище 2. Задонатити на підвищення вартості акцій 3. Oracle повідомляє про завищену ціну 4. Курс валют = 0 за рахунок поділу 5. Перевірка LTV: 0 <= maxLTV (завжди вірно!) 6. Розблоковано необмежену позику
5. Профілактика проста: _exchangeRate = 1е36 / ціна; require(_exchangeRate 0, "Недійсна ставка"); Також: • Забезпечити дотримання мінімальних депозитів • Додайте перевірки коефіцієнта частки • Моніторинг ліквідності сховища
6. Ключовий урок: ERC4626 сховища потребують додаткового захисту під час розгортання. Проблема «першого депозитора» не нова, але ResupplyFi показує, як вона може каскадом перетворитися на критичну вразливість. Повний технічний аналіз читайте в нашому блозі:
3,4K