@UniLend_Finance- це бездозвільний децентралізований протокол грошового ринку з послугами кредитування та позик відомі через розумні контракти.
UniLend дозволяє користувачам використовувати свої криптовалюти, надаючи заставу мережі, яку можна позичити, заставляючи переколатералізовані криптовалюти. Це створює безпечне кредитне середовище, де кредитор отримує складений щорічний процентний курс (APY), що сплачується за блок, тоді як позичальник сплачує відсотки за позиченими криптовалютами.
Протокол UniLend V2 працює через три основні технічні компоненти:
1. Модель двохактивних пулів
UniLend використовує ізольовані подвійні пули активів для кожної пари ERC20/ERC20-сумісних активів. Цей дизайн гарантує, що продуктивність або волатильність одного активу не впливає на інші, підвищуючи безпеку та стабільність. Архітектура дозволяє будь-якому користувачеві створювати та управляти пулами позик та позиковими пулами для широкого спектру активів на різних блокчейнах.
2. Постачання та позичання
3. Модель процентної ставки
UniLend використовує модель динамічної відсоткової ставки, засновану на коефіцієнті використання пулу (U), який розраховується як:
Ux=ПозикаxПозикаx+Готівкаx
Ставка позичання:
Відсоткова ставка за позикою x=10%+(Ux×30%)
Ставки зростають зі збільшенням використання для збалансування подання та попиту.
Ставка поставкиx=Ставка позикx×Ux×(1−S)
Це забезпечує постачальникам стійкий прибуток, поки протокол залишається прибутковим.
Ці компоненти співпрацюють між собою, щоб створити безпечний, ефективний та масштабований децентралізований грошовий ринок.
12 січня 2025 року була використана вразливість безпеки в протоколі UniLend, що призвело до втрати приблизно 200 000 доларів зі страхового фонду UniLend. Атакувальник маніпулював розрахунками застави, які неправильно оцінювали фактор здоров'я користувача. Цей недолік дозволив атакувальникові вивести 60 токенів stETH без належної застави.
Украдені активи включали 60 токенів stETH, використовуючи помилкове розрахунок балансу токенів користувача протоколу.
Атакувальник ініціював використання вразливості, використовуючи швидкий кредит для внесення великої суми USDC в басейн UniLend. Зокрема, вони внесли 60 мільйонів USDC, значно завищивши свій забезпечення в басейні.
Флеш-кредити дозволяють користувачам брати великі суми активів без застави, за умови, що позичена сума повертається протягом тієї ж транзакції.
Атакувальник скористався цим механізмом, щоб отримати необхідні USDC без передоплати капіталу, тим самим створивши штучно завищену позицію в басейні.
Після внесення USDC зловмисник продовжив позичати токени stETH. Протокол розраховує вартість застави користувача на підставі балансу їх токенів у басейні. Проте через недолік у реалізації баланс розраховувався на основі поточного балансу токенів у контракті басейну, а не фактичної суми, яка була переказана під час перевірки фактору здоров'я. Це неузгодженість означала, що баланс токенів користувача здавався значно вищим, ніж він насправді був, особливо в басейнах з великою ліквідністю.
Корінь цієї маніпуляції полягає у функції userBalanceOfToken. У сценаріях, де пул має значний ліквідний запас, ця функція може повертати високий lendBalance, навіть коли залишилася лише невелика позика. Це переоцінювання балансу користувача надавало зловмиснику уявлення про більш значну заставу, ніж він фактично мав. В результаті зловмисник міг запозичувати токени 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=ПозикаxПозикаx+Готівкаx
Ставка позичання:
Відсоткова ставка за позикою x=10%+(Ux×30%)
Ставки зростають зі збільшенням використання для збалансування подання та попиту.
Ставка поставкиx=Ставка позикx×Ux×(1−S)
Це забезпечує постачальникам стійкий прибуток, поки протокол залишається прибутковим.
Ці компоненти співпрацюють між собою, щоб створити безпечний, ефективний та масштабований децентралізований грошовий ринок.
12 січня 2025 року була використана вразливість безпеки в протоколі UniLend, що призвело до втрати приблизно 200 000 доларів зі страхового фонду UniLend. Атакувальник маніпулював розрахунками застави, які неправильно оцінювали фактор здоров'я користувача. Цей недолік дозволив атакувальникові вивести 60 токенів stETH без належної застави.
Украдені активи включали 60 токенів stETH, використовуючи помилкове розрахунок балансу токенів користувача протоколу.
Атакувальник ініціював використання вразливості, використовуючи швидкий кредит для внесення великої суми USDC в басейн UniLend. Зокрема, вони внесли 60 мільйонів USDC, значно завищивши свій забезпечення в басейні.
Флеш-кредити дозволяють користувачам брати великі суми активів без застави, за умови, що позичена сума повертається протягом тієї ж транзакції.
Атакувальник скористався цим механізмом, щоб отримати необхідні USDC без передоплати капіталу, тим самим створивши штучно завищену позицію в басейні.
Після внесення USDC зловмисник продовжив позичати токени stETH. Протокол розраховує вартість застави користувача на підставі балансу їх токенів у басейні. Проте через недолік у реалізації баланс розраховувався на основі поточного балансу токенів у контракті басейну, а не фактичної суми, яка була переказана під час перевірки фактору здоров'я. Це неузгодженість означала, що баланс токенів користувача здавався значно вищим, ніж він насправді був, особливо в басейнах з великою ліквідністю.
Корінь цієї маніпуляції полягає у функції userBalanceOfToken. У сценаріях, де пул має значний ліквідний запас, ця функція може повертати високий lendBalance, навіть коли залишилася лише невелика позика. Це переоцінювання балансу користувача надавало зловмиснику уявлення про більш значну заставу, ніж він фактично мав. В результаті зловмисник міг запозичувати токени stETH понад своє законне право на основі його фактичної застави.
З завищеною вартістю застави нападник продовжив викупити свої USDC та stETH. Була викликана функція redeemUnderlying, яка спалювала токени LP, пов'язані з депозитом користувача. Однак через недолік перевірки фактору здоров'я, що відбувається перед передачею токенів, система вважала, що у користувача є достатньо застави, щоб зняти більше, ніж йому належить. Цей недолік дозволив нападнику зняти 60 токенів stETH без збереження необхідної застави, ефективно отримавши ці токени безкоштовно.
Щоб запобігти атакі, UniLend повинен був перепорядкувати операції у функції redeemUnderlying. Виконуючи перевірку фактора здоров'я після передачі токенів користувачеві, протокол гарантує, що фактичний баланс токенів користувача відображає їхній статус застави.
Безпека блокчейну не є вибірковою. Захистіть свої розумні контракти та протоколи DeFi за допомогою Three Sigma, надійного партнера з безпеки в області блокчейну, аудиту блокчейну, оцінки вразливостей розумних контрактів та безпеки Web3.
Натисніть дляОтримайте сьогодні свій аудит розумного контракту.
Експлуатація UniLend призвела до значних фінансових втрат, приблизно 200 000 доларів США з пулу UniLend. Ці значні втрати безпосередньо вплинули на резерви платформи та зменшили доступну ліквідність для інших користувачів, що потенційно може нашкодити наданню позик та позичанню.
Після експлойту UniLend вжила негайних заходів для усунення вразливості та заспокоїла свою базу користувачів.
Вони оголосили 20% винагороду відповідальній стороні за безпечне повернення коштів.
Адреси
Атака транзакції:
Адреса експлуататора:
Адреса UnilendV2Core: