BlockSec выявил два основных уязвимости в контрактах цифровых коллекционных предметов, из-за которых 34 миллиона долларов активов оказались заблокированы.
Команда BlockSec недавно обнаружила два серьезных уязвимости в контракте цифрового коллекционного предмета. Эти два уязвимости могут привести к тому, что активы пользователей будут заблокированы, а средства команды проекта не смогут быть выведены.
Первая уязвимость существует в функции обработки возвратов. Эта функция использует циклический подход для возврата средств всем пользователям, но если один из пользователей является злонамеренным контрактом, он может отказаться от получения возврата и вызвать откат транзакции, что приведет к невозможности завершить операции возврата для всех пользователей. Хотя эта уязвимость в конечном итоге не была использована, она все равно представляет потенциальный риск.
В связи с такими сценариями возврата средств эксперты рекомендуют принять следующие меры для повышения безопасности:
Ограничение, что только личные счета могут участвовать в проекте
Используйте такие ERC20 токены, как WETH, вместо нативных активов
Разработать механизм, позволяющий пользователю самостоятельно запрашивать возврат, чтобы избежать массовых операций возврата.
!
Второй уязвимость вызвана логической ошибкой в коде. В функции вывода средств командой проекта имеется условное выражение, которое должно было сравнивать "прогресс возврата" и "индекс ставки", но ошибочно сравнивается с "общим количеством ставок". Это приводит к тому, что условие никогда не выполняется, и команда проекта не может вывести средства из контракта. В настоящее время более 34 миллионов долларов активов заблокированы в контракте.
!
Эти вопросы еще раз подчеркивают важность проведения комплексного тестирования и аудита безопасности при разработке проектов на блокчейне. Особенно в области цифровых коллекционных предметов в настоящее время все еще не хватает достаточной осведомленности о безопасности и практики аудита, что может привести к серьезным экономическим потерям. Команда проекта должна сформировать базовое мышление о безопасности, написать достаточное количество тестовых случаев и провести профессиональный аудит безопасности до выпуска, чтобы избежать подобных низкоуровневых ошибок.
!
Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
18 Лайков
Награда
18
4
Поделиться
комментарий
0/400
BackrowObserver
· 07-11 04:43
Технологии сложны, неудивительно, что кто-то спотыкается.
Посмотреть ОригиналОтветить0
DeadTrades_Walking
· 07-11 04:41
Снова увидели, как смарт-контракты проваливаются
Посмотреть ОригиналОтветить0
Ramen_Until_Rich
· 07-11 04:40
Снова обнаружена уязвимость, молчим три секунды
Посмотреть ОригиналОтветить0
MidnightGenesis
· 07-11 04:27
С точки зрения кода есть большие проблемы, похоже, кто-то снова потеряет.
BlockSec выявил два основных уязвимости в контрактах цифровых коллекционных предметов, из-за которых 34 миллиона долларов активов оказались заблокированы.
Команда BlockSec недавно обнаружила два серьезных уязвимости в контракте цифрового коллекционного предмета. Эти два уязвимости могут привести к тому, что активы пользователей будут заблокированы, а средства команды проекта не смогут быть выведены.
Первая уязвимость существует в функции обработки возвратов. Эта функция использует циклический подход для возврата средств всем пользователям, но если один из пользователей является злонамеренным контрактом, он может отказаться от получения возврата и вызвать откат транзакции, что приведет к невозможности завершить операции возврата для всех пользователей. Хотя эта уязвимость в конечном итоге не была использована, она все равно представляет потенциальный риск.
В связи с такими сценариями возврата средств эксперты рекомендуют принять следующие меры для повышения безопасности:
!
Второй уязвимость вызвана логической ошибкой в коде. В функции вывода средств командой проекта имеется условное выражение, которое должно было сравнивать "прогресс возврата" и "индекс ставки", но ошибочно сравнивается с "общим количеством ставок". Это приводит к тому, что условие никогда не выполняется, и команда проекта не может вывести средства из контракта. В настоящее время более 34 миллионов долларов активов заблокированы в контракте.
!
Эти вопросы еще раз подчеркивают важность проведения комплексного тестирования и аудита безопасности при разработке проектов на блокчейне. Особенно в области цифровых коллекционных предметов в настоящее время все еще не хватает достаточной осведомленности о безопасности и практики аудита, что может привести к серьезным экономическим потерям. Команда проекта должна сформировать базовое мышление о безопасности, написать достаточное количество тестовых случаев и провести профессиональный аудит безопасности до выпуска, чтобы избежать подобных низкоуровневых ошибок.
!