Взлом NFT-кредитования Gondi на $230 000: Как отсутствие проверки вызывающей стороны привело к краже 78 ценных NFT
Одна пропущенная проверка авторизации. Семнадцать дней незамеченной активности. Семьдесят восемь NFT уровня «голубых фишек» — включая работы Art Blocks, Doodles и Beeple — выведены из кошельков, владельцы которых даже не инициировали транзакцию. Эксплойт Gondi от 9 марта 2026 года — это наглядный пример того, как «функции для удобства» могут стать вектором атаки, и почему сектор кредитования NFT сталкивается с проблемами безопасности, с которыми DeFi на базе взаимозаменяемых токенов никогда не сталкивался.
Что такое Gondi и почему это важно
Gondi — это децентрализованный P2P-протокол кредитования NFT, который позволяет пользователям занимать WETH, USDC или HYPE под залог своих NFT — без оракулов, принудительных ликвидаций и с начислением процентов пропорционально времени использования займа. Имея более 100 миллионов долларов общей заблокированной стоимости (TVL), 45 миллионов долларов непогашенного долга и годовой объем кредитования свыше 400 миллионов долларов в более чем 150 поддерживаемых коллекциях, Gondi зарекомендовал себя как один из крупнейших рынков ликвидности NFT в индустрии.
Протокол внедрил такие инновации, как мгновенное частичное рефинансирование, непрерывный андеррайтинг и многотраншевое кредитование. Одна из его функций для удобства, «Sell & Repay» (Продай и погаси), позволяла заемщикам продавать депонированные NFT и автоматически погашать кредиты в рамках одной пакетной транзакции — что снижало трение и затраты на газ.
Именно эта функция удобства и стала вектором атаки.
Анатомия эксплойта
Уязвимый контракт
20 февраля 2026 года Gondi развернула обновленную версию своего контракта Sell & Repay. Новая версия включала функцию «Purchase Bundler» (Пакетный покупатель), предназначенную для пакетных операций. Однако в функции содержался критический изъян: она не проверяла должным образом, является ли вызывающий абонент (msg.sender) законным владельцем или заемщиком транслируемых NFT.
Как развивалась атака
9 марта — через семн адцать дней после развертывания — злоумышленник обнаружил и использовал эту брешь:
- Разведка: Злоумышленник сканировал данные публичного блокчейна на предмет кошельков, которые предоставили активные разрешения (approvals) на токены уязвимому контракту Gondi.
- Сформированные вызовы: Используя собственный кошелек, злоумышленник вызвал функцию Purchase Bundler со специально подготовленными данными
executionData, содержащими детали целевых NFT. - Обход авторизации: Поскольку контракт никогда не проверял, является ли вызывающий абонент законным владельцем, он обрабатывал каждый вызов как легитимный.
- Опустошение через разрешения: Контракт использовал существующие разрешения пользователей для перевода NFT из кошельков жертв — при этом жертвы не подписывали никаких новых транзакций.
Примерно за 40 транзакций злоумышленник вывел 78 NFT на адрес, который теперь помечен в Etherscan как «GONDI Exploiter».