Back to Blog

Как Akutar NFT потеряли 34 000 000 долларов США

Code Auditing
April 23, 2022
2 min read

Мы обнаружили две серьезные логические уязвимости в смарт-контрактах @AkuDreams. Первая уязвимость может привести к DoS-атаке, а вторая — к тому, что средства проекта (более 34 млн долларов США) окажутся заблокированы навсегда.

Уязвимость I

Первая уязвимость присутствует в функции processRefunds. Эта функция содержит цикл, который должен возвращать средства каждому пользователю, сделавшему ставку. Однако участник торгов может быть вредоносным контрактом, который вызывает отмену транзакции (revert). Это приведет к тому, что вызов processRefunds будет отклонен, и ни один из пользователей не сможет получить возврат средств. К счастью, эта уязвимость не была использована злоумышленниками.

Мы предлагаем использовать следующие меры для возврата средств пользователям:

  • Убедиться, что ставки могут делать только EOA (внешние аккаунты).
  • Использовать ERC20-токены, например WETH, вместо ETH.
  • Добавить функцию, позволяющую пользователю самостоятельно запрашивать возврат средств.

Уязвимость II

Вторая уязвимость является программной ошибкой. В функции claimProjectFunds владелец проекта может забрать эфир, находящийся на контракте. Однако инструкция require(refundProgress >= totalBids, "Refunds not yet processed"); содержит ошибку: в ней следовало сравнивать refundProgress с _bidIndex, а не с totalBids. Из-за этой уязвимости условие никогда не будет выполнено, и эфир (11 539,5 ETH), хранящийся на контракте, может быть заблокирован навсегда.

Резюме

Мы вновь удивлены (после вчерашнего случая с NBA NFT), как столь заметный проект может пренебрегать базовыми правилами безопасности программного обеспечения. Как минимум, проект должен был написать достаточное количество тест-кейсов. К сожалению, мы подозреваем, что проекты бывают слишком заняты, чтобы писать тесты, и в итоге теряют 34 млн долларов США навсегда.

О компании BlockSec

BlockSec — передовая компания в сфере безопасности блокчейнов, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить уровень безопасности и удобства использования развивающегося мира Web3, чтобы способствовать его массовому внедрению. С этой целью BlockSec предоставляет услуги по аудиту смарт-контрактов и EVM-сетей, платформу Phalcon для безопасности разработки и проактивного блокирования угроз, платформу MetaSleuth для отслеживания средств и расследований, а также расширение MetaDock для эффективной работы разработчиков Web3 в криптомире.

На сегодняшний день компания обслужила более 300 уважаемых клиентов, таких как MetaMask, Uniswap Foundation, Compound, Forta и PancakeSwap, и получила десятки миллионов долларов США в ходе двух раундов финансирования от выдающихся инвесторов, включая Matrix Partners, Vitalbridge Capital и Fenbushi Capital.

Официальный сайт: https://blocksec.com/

Официальный аккаунт в Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit