@UniLend_Financeэто протокол децентрализованного денежного рынка без разрешения с услугами кредитования и заимствования через смарт-контракты.
UniLend позволяет пользователям использовать свои криптовалюты, предоставляя залог в сети, который может быть заемным путем заложения переколлатерализованных криптовалют. Это создает безопасную среду для кредитования, где кредитор получает ежегодную сложную процентную ставку (APY), начисляемую за каждый блок, в то время как заемщик платит проценты по заемной криптовалюте.
Протокол UniLend V2 функционирует благодаря трём основным техническим компонентам:
1.Модель двойного активного пула
UniLend использует изолированные двойные пулы активов для каждой пары ERC20/ERC20-совместимых токенов. Этот дизайн гарантирует, что производительность или волатильность одного актива не влияют на другие, повышая безопасность и стабильность. Архитектура позволяет любому пользователю создавать и управлять пулами кредитования и заимствования для широкого спектра активов на различных блокчейнах.
2. Поставка и займы
3. Модель процентной ставки
UniLend использует динамическую модель процентной ставки на основе коэффициента использования пула (U), рассчитанного следующим образом:
Ux=BorrowxBorrowx+Cashx
Процентная ставка по займу:
Процентная ставка по займамx=10%+(Ux×30%)
Ставки растут с увеличением использования для балансировки спроса и предложения.
Коэффициент процента поставки = Коэффициент процента по займу × Ux × (1−S)
Это обеспечивает поставщикам устойчивую прибыль, в то время как протокол остается прибыльным.
Эти компоненты работают вместе для создания безопасного, эффективного и масштабируемого децентрализованного денежного рынка.
12 января 2025 года была использована уязвимость в протоколе UniLend, что привело к потере около 200 000 долларов из пула UniLend. Злоумышленник манипулировал расчетами залога, что неправильно оценило фактор здоровья пользователя. Эта уязвимость позволила злоумышленнику снять 60 токенов stETH без должной обеспеченности.
Украденные активы включали 60 токенов stETH, используя неправильные расчеты балансов пользовательских токенов протокола.
Атакующий инициировал эксплуатацию, используя флеш-кредит для внесения огромного количества USDC в пул UniLend. Конкретно, они внесли 60 миллионов USDC, значительно увеличив свое залоговое обеспечение внутри пула.
Flash-кредиты позволяют пользователям занимать большие суммы активов без обеспечения, при условии, что заемная сумма возвращается в том же транзакции.
Злоумышленник использовал этот механизм, чтобы получить необходимые USDC без предварительного капитала, тем самым создавая искусственно завышенную позицию внутри пула.
После внесения USDC злоумышленник продолжил занимать токены stETH. Протокол вычисляет стоимость залога пользователя на основе баланса их токенов в пуле. Однако из-за ошибочной реализации баланс рассчитывался на основе текущего баланса токенов в контракте пула, а не фактической суммы, переданной во время проверки фактора здоровья. Это расхождение означало, что баланс токенов пользователя казался значительно выше, чем он был на самом деле, особенно в пулах с большой ликвидностью.
Корень этого манипулирования заключается в функции userBalanceOfToken. В ситуациях, когда пул имеет значительную ликвидность, эта функция может возвращать высокий lendBalance, даже если остается только небольшая доля lend. Это завышение баланса пользователя давало злоумышленнику иллюзию наличия большего залога, чем у него на самом деле было. Следовательно, злоумышленник мог занимать токены stETH сверх своего законного права на основе его фактического залога.
С завышенной стоимостью залога злоумышленник продолжил выкупать свои USDC и stETH. Была вызвана функция redeemUnderlying, которая сжигала токены LP, связанные с депозитом пользователя. Однако из-за недостатков проверки фактора здоровья, происходящей перед передачей токенов, система считала, что у пользователя достаточно залога для снятия большего, чем он имел право. Этот недочет позволил злоумышленнику снять 60 токенов stETH без поддержания необходимого залога, фактически получив эти токены бесплатно.
Чтобы предотвратить атаку, UniLend должен был переупорядочить операции внутри функции redeemUnderlying. Проверка фактора здоровья должна выполняться после передачи токенов пользователю, чтобы протокол гарантировал точность отображения фактического баланса токенов пользователя, отражающего его статус залога.
Безопасность блокчейна не является вариантом на выбор. Защитите свои умные контракты и протоколы DeFi с помощью Three Sigma, надежного партнера по обеспечению безопасности в блокчейн-аудитах, оценке уязвимостей умных контрактов и безопасности Web3.
Нажмите, чтобыПолучите аудит вашего умного контракта сегодня.
Эксплуатация UniLend привела к значительным финансовым потерям, составившим около $200 000 из пула UniLend. Эти значительные потери непосредственно повлияли на резервы платформы и снизили доступную ликвидность для других пользователей, что потенциально может нарушить текущие активности по кредитованию и заимствованию.
После эксплуатации UniLend немедленно принял меры по устранению уязвимости и заверил свою пользовательскую базу.
Они объявили награду в 20% ответственной стороне за безопасное возвращение средств.
Адреса
Атака транзакции:
Адрес эксплойтера:
Адрес UnilendV2Core:
@UniLend_Financeэто протокол децентрализованного денежного рынка без разрешения с услугами кредитования и заимствования через смарт-контракты.
UniLend позволяет пользователям использовать свои криптовалюты, предоставляя залог в сети, который может быть заемным путем заложения переколлатерализованных криптовалют. Это создает безопасную среду для кредитования, где кредитор получает ежегодную сложную процентную ставку (APY), начисляемую за каждый блок, в то время как заемщик платит проценты по заемной криптовалюте.
Протокол UniLend V2 функционирует благодаря трём основным техническим компонентам:
1.Модель двойного активного пула
UniLend использует изолированные двойные пулы активов для каждой пары ERC20/ERC20-совместимых токенов. Этот дизайн гарантирует, что производительность или волатильность одного актива не влияют на другие, повышая безопасность и стабильность. Архитектура позволяет любому пользователю создавать и управлять пулами кредитования и заимствования для широкого спектра активов на различных блокчейнах.
2. Поставка и займы
3. Модель процентной ставки
UniLend использует динамическую модель процентной ставки на основе коэффициента использования пула (U), рассчитанного следующим образом:
Ux=BorrowxBorrowx+Cashx
Процентная ставка по займу:
Процентная ставка по займамx=10%+(Ux×30%)
Ставки растут с увеличением использования для балансировки спроса и предложения.
Коэффициент процента поставки = Коэффициент процента по займу × Ux × (1−S)
Это обеспечивает поставщикам устойчивую прибыль, в то время как протокол остается прибыльным.
Эти компоненты работают вместе для создания безопасного, эффективного и масштабируемого децентрализованного денежного рынка.
12 января 2025 года была использована уязвимость в протоколе UniLend, что привело к потере около 200 000 долларов из пула UniLend. Злоумышленник манипулировал расчетами залога, что неправильно оценило фактор здоровья пользователя. Эта уязвимость позволила злоумышленнику снять 60 токенов stETH без должной обеспеченности.
Украденные активы включали 60 токенов stETH, используя неправильные расчеты балансов пользовательских токенов протокола.
Атакующий инициировал эксплуатацию, используя флеш-кредит для внесения огромного количества USDC в пул UniLend. Конкретно, они внесли 60 миллионов USDC, значительно увеличив свое залоговое обеспечение внутри пула.
Flash-кредиты позволяют пользователям занимать большие суммы активов без обеспечения, при условии, что заемная сумма возвращается в том же транзакции.
Злоумышленник использовал этот механизм, чтобы получить необходимые USDC без предварительного капитала, тем самым создавая искусственно завышенную позицию внутри пула.
После внесения USDC злоумышленник продолжил занимать токены stETH. Протокол вычисляет стоимость залога пользователя на основе баланса их токенов в пуле. Однако из-за ошибочной реализации баланс рассчитывался на основе текущего баланса токенов в контракте пула, а не фактической суммы, переданной во время проверки фактора здоровья. Это расхождение означало, что баланс токенов пользователя казался значительно выше, чем он был на самом деле, особенно в пулах с большой ликвидностью.
Корень этого манипулирования заключается в функции userBalanceOfToken. В ситуациях, когда пул имеет значительную ликвидность, эта функция может возвращать высокий lendBalance, даже если остается только небольшая доля lend. Это завышение баланса пользователя давало злоумышленнику иллюзию наличия большего залога, чем у него на самом деле было. Следовательно, злоумышленник мог занимать токены stETH сверх своего законного права на основе его фактического залога.
С завышенной стоимостью залога злоумышленник продолжил выкупать свои USDC и stETH. Была вызвана функция redeemUnderlying, которая сжигала токены LP, связанные с депозитом пользователя. Однако из-за недостатков проверки фактора здоровья, происходящей перед передачей токенов, система считала, что у пользователя достаточно залога для снятия большего, чем он имел право. Этот недочет позволил злоумышленнику снять 60 токенов stETH без поддержания необходимого залога, фактически получив эти токены бесплатно.
Чтобы предотвратить атаку, UniLend должен был переупорядочить операции внутри функции redeemUnderlying. Проверка фактора здоровья должна выполняться после передачи токенов пользователю, чтобы протокол гарантировал точность отображения фактического баланса токенов пользователя, отражающего его статус залога.
Безопасность блокчейна не является вариантом на выбор. Защитите свои умные контракты и протоколы DeFi с помощью Three Sigma, надежного партнера по обеспечению безопасности в блокчейн-аудитах, оценке уязвимостей умных контрактов и безопасности Web3.
Нажмите, чтобыПолучите аудит вашего умного контракта сегодня.
Эксплуатация UniLend привела к значительным финансовым потерям, составившим около $200 000 из пула UniLend. Эти значительные потери непосредственно повлияли на резервы платформы и снизили доступную ликвидность для других пользователей, что потенциально может нарушить текущие активности по кредитованию и заимствованию.
После эксплуатации UniLend немедленно принял меры по устранению уязвимости и заверил свою пользовательскую базу.
Они объявили награду в 20% ответственной стороне за безопасное возвращение средств.
Адреса
Атака транзакции:
Адрес эксплойтера:
Адрес UnilendV2Core: