Анализ инцидента с атакой в 300000 долларов в блокчейне, вызванного уязвимостью временного хранилища
30 марта 2025 года, проект с маржинальной торговлей в блокчейне подвергся атаке, в результате чего была потеряна активов на сумму более 300 тысяч долларов. Команда безопасности провела глубокий анализ этого инцидента и теперь делится результатами:
Фон
Атака произошла в сети Ethereum, целью которой был проект с маржинальной торговлей. Нападающий использовал уязвимость, связанную с временным хранилищем, в контракте этого проекта.
Предварительные знания
Версия Solidity 0.8.24 представила функцию временного хранилища (transient storage), которая является новым местом для хранения данных. Основные характеристики включают:
Низкая стоимость газа: операции TSTORE и TLOAD фиксированно потребляют 100 газа
Постоянство данных в транзакциях: данные остаются действительными на протяжении всей транзакции
Автоматическое сбрасывание: автоматически сбрасывается на ноль после завершения сделки
Причина уязвимости
Основная причина этой атаки заключается в том, что значения, использующие tstore для временного хранения в контракте, не очищаются после завершения вызова функции. Это позволяет злоумышленникам использовать эту особенность для создания определенного адреса, обходя проверку прав и выводя токены.
Процесс атаки
Нападающий создаёт два вредоносных токена A и B и создаёт ликвидный пул для них на одном DEX.
Вызовите функцию initialize целевого контракта, чтобы создать рынок маржинальной торговли с токеном A в качестве залога и токеном B в качестве долгового токена.
Вызовите функцию mint для хранения токена B, который создает токены с кредитным плечом, при этом было выполнено две операции мгновенного хранения.
Создайте адрес с тем же значением временного хранения, что и во втором злоумышленном контракте.
Через этот вредоносный контракт вызывается функция обратного вызова целевого контракта, обходя проверку прав, для вывода токенов.
Наконец, через атакующий контракт (токен A) снова вызывается функция обратного вызова, чтобы вывести другие токены (такие как WBTC, WETH) для получения прибыли.
Анализ потоков средств
Злоумышленники украли активы на сумму около 300 000 долларов, включая:
17,814.8626 USDC
1.4085 WBTC
119.871 ВТ
Затем злоумышленник обменял WBTC и USDC на WETH, в конце концов переведя 193.1428 WETH в одну из микс-сервисов.
Начальный капитал злоумышленника (0.3 ETH) также поступил из этой службы смешивания.
Резюме и рекомендации
Основная цель этой атаки заключается в использовании свойства временного хранения, позволяющего сохранять значение неизменным на протяжении всей транзакции, что позволяет обойти проверку полномочий контракта. Для предотвращения подобных атак рекомендуется команде проекта:
Немедленно используйте tstore(key для очистки значений в временном хранилище после завершения вызова функции.
Укрепить аудит кода контрактов и тестирование безопасности.
Осторожно используйте новые языковые функции и полностью осознавайте их потенциальные риски.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
7 Лайков
Награда
7
6
Поделиться
комментарий
0/400
PensionDestroyer
· 10ч назад
Снова неудачники прислали.
Посмотреть ОригиналОтветить0
TestnetFreeloader
· 10ч назад
А что это, так уж и быть, даже свой проект не удерживаю.
Посмотреть ОригиналОтветить0
LootboxPhobia
· 10ч назад
Проблема, проблема, еще один брат наступил на мину.
Посмотреть ОригиналОтветить0
BearMarketMonk
· 10ч назад
Выдернули羊毛 и забрали контракт洞
Посмотреть ОригиналОтветить0
DeFiAlchemist
· 10ч назад
ах, еще одна жертва темным искусствам эксплуатации смарт-контрактов... *регулирует хрустальный шар* эти эфемерные уязвимости хранения подобны трещинам в герметичной печати алхимии протокола
Уязвимость временного хранения привела к атаке на проект в блокчейне на сумму 300000 долларов США. Эксперт дает рекомендации по предотвращению.
Анализ инцидента с атакой в 300000 долларов в блокчейне, вызванного уязвимостью временного хранилища
30 марта 2025 года, проект с маржинальной торговлей в блокчейне подвергся атаке, в результате чего была потеряна активов на сумму более 300 тысяч долларов. Команда безопасности провела глубокий анализ этого инцидента и теперь делится результатами:
Фон
Атака произошла в сети Ethereum, целью которой был проект с маржинальной торговлей. Нападающий использовал уязвимость, связанную с временным хранилищем, в контракте этого проекта.
Предварительные знания
Версия Solidity 0.8.24 представила функцию временного хранилища (transient storage), которая является новым местом для хранения данных. Основные характеристики включают:
Причина уязвимости
Основная причина этой атаки заключается в том, что значения, использующие tstore для временного хранения в контракте, не очищаются после завершения вызова функции. Это позволяет злоумышленникам использовать эту особенность для создания определенного адреса, обходя проверку прав и выводя токены.
Процесс атаки
Анализ потоков средств
Злоумышленники украли активы на сумму около 300 000 долларов, включая:
Затем злоумышленник обменял WBTC и USDC на WETH, в конце концов переведя 193.1428 WETH в одну из микс-сервисов.
Начальный капитал злоумышленника (0.3 ETH) также поступил из этой службы смешивания.
Резюме и рекомендации
Основная цель этой атаки заключается в использовании свойства временного хранения, позволяющего сохранять значение неизменным на протяжении всей транзакции, что позволяет обойти проверку полномочий контракта. Для предотвращения подобных атак рекомендуется команде проекта: