Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Sherlock AI сообщил о критической уязвимости в протоколе @40acresFinance.
Команда 40acres щедро разрешила нам поделиться деталями публично, чтобы другие могли извлечь уроки из этой находки.
Вот как работала уязвимость:
Во-первых, veNFT — это особый тип токенов ERC721, которые хранятся под залог и зарабатывают еженедельные вознаграждения.
40acres предоставляет держателям veNFT мгновенный доступ к займам на основе будущих доходов их veNFT.
Каждый veNFT заемщика находится внутри личного PortfolioAccount, который направляет функциональность через модульные "фасеты" с использованием паттерна алмаза.
Эксплойт позволяет злоумышленнику вернуть свой залог (veNFT) из своего PortfolioAccount без погашения займа.
Посмотрите на функцию aerodromeVote() ниже. У 40acres есть очень классная функция, которая позволяет заемщикам голосовать с помощью их veNFT, удерживаемых в качестве залога в 40acres.
У функции есть следующая проблема: адрес loanContract не проверяется, что позволяет злонамеренному пользователю указать произвольный контракт. Этот контракт может быть одобрен для управления veNFT в PortfolioAccount, что позволяет его передать во время вызова vote() в злонамеренном loanContract.
Шаги атаки
1) Злоумышленник разворачивает злонамеренный контракт, который реализует вызов transferFrom/safeTransferFrom для передачи одобренного veNFT.
2) Злоумышленник вызывает portfolioAccount.aerodromeVote(maliciousContract, tokenId). Портфельный fallback делегирует вызов фасету, который не имеет проверки входных данных и вызывает и передает veNFT обратно злоумышленнику, даже если заем не был погашен.
Примечание: Повторение ошибки приводит к истощению кредитного пула - сделать это один раз - это просто взять заем и украсть свой veNFT обратно.
Влияние
Неподкрепленные займы по всей системе. Любой заемщик может вернуть свой собственный залог в середине займа, что приводит к полной неплатежеспособности кредитного пула.
Благодарности
Спасибо @defsec_, @vinica_boy и @onthehunt11_ за помощь с этой статьей.
Важно знать: Команда 40acres обнаружила ошибку и применила исправление до запуска.
Обнаружено Sherlock AI
Вы можете увидеть оригинальную проблему, сгенерированную Sherlock AI, в следующем твите.
Запуск занял 3 часа 59 минут от начала до конца.
Sherlock AI приносит безопасность в процесс разработки, сканируя коммиты и пути вызовов на ранних этапах, быстро выявляя высокоэффективные недостатки и предоставляя аудиторам более четкое представление о сложных системах. На практике это означает, что такие проблемы, как эта, могут быть выявлены и решены задолго до аудитов, вознаграждений или развертывания.
Попробуйте Sherlock AI для вашего протокола сегодня.



Исходные проблемы, сгенерированные Sherlock AI:
Исходные проблемы, сгенерированные Sherlock AI:
Попробуйте Sherlock AI для вашей команды сегодня:

59,59K
Топ
Рейтинг
Избранное

