Уязвимость временного хранения привела к потере 300000 долларов в проекте маржинальной торговли на Эфире.

Уязвимость мгновенного хранения привела к краже активов на сумму 300000 долларов США

30 марта 2025 года проект маржинальной торговли на блокчейне Ethereum подвергся атаке, в результате которой были потеряны активы на сумму более 300 тысяч долларов. Команда безопасности провела глубокий анализ этого инцидента и делится результатами ниже:

Фон

Версия Solidity 0.8.24 вводит особенности временного хранения на основе EIP-1153. Это новое место для хранения данных, предназначенное для предоставления разработчикам временного способа хранения с низкими затратами, действующего в течение транзакции. Временное хранение реализуется с помощью двух новых инструкций EVM: TSTORE и TLOAD, обладая такими характеристиками, как низкие затраты на газ, долговечность внутри транзакции и автоматическое удаление.

Смертельный остаток: ограбление на цепочке на 300000 долларов, вызванное временным хранилищем

Причины атаки

Основная причина этого инцидента заключается в том, что значения, используемые для временного хранения в функции с помощью tstore, не были очищены после завершения вызова функции. Злоумышленник использовал эту особенность для создания определенного вредоносного адреса, чтобы обойти проверку прав и вывести токены.

Смертельные остатки: ограбление на блокчейне на 300000 долларов, вызванное временным хранением

Шаги атаки

  1. Нападающий создает два вредоносных токена A и B, и на каком-то DEX создает пулы для этих двух токенов и вводит ликвидность.

  2. Нападающий вызывает функцию initialize контракта Vault, чтобы создать рынок кредитного плеча с токеном A в качестве залогового токена и токеном B в качестве долгового токена.

  3. Атакующий вызывает функцию mint контракта Vault, внося долговой токен B для чеканки леверидж-токена. В этом процессе адрес пула DEX и количество чеканки временно хранятся.

  4. Атакующий создает злонамеренный контракт, адрес которого совпадает со значением второго временного хранилища.

  5. Злоумышленник вызывает обратный вызов контракта Vault через вредоносный контракт для вывода токенов. Поскольку значения временного хранилища не были очищены, проверка личности была неверно пройдена.

  6. Наконец, злоумышленник, атакуя контракт (токен A), вызывает функцию обратного вызова контракта Vault, чтобы вывести другие токены (такие как WBTC, WETH) для получения прибыли.

Смертельный остаток: ограбление на 300000 долларов на блокчейне, вызванное временным хранением

Смертельный остаток: ограбление на цепочке на 300000 долларов, вызванное временным хранилищем

Смертельные остатки: ограбление на цепочке на 300 000 долларов, вызванное временным хранилищем

Смертельный остаток: ограбление на 300 000 долларов, вызванное временным хранилищем

Смертельные остатки: ограбление на блокчейне на сумму 300000 долларов, вызванное временным хранением

Смертельный остаток: ограбление на $300,000 на блокчейне, вызванное временным хранилищем

Смертельный остаток: ограбление на 300000 долларов, вызванное временным хранилищем

Смертельные остатки: ограбление на блокчейне на 300000 долларов, вызванное временным хранением

Смертельные остатки: ограбление на цепочке на сумму 300 000 долларов, вызванное временным хранилищем

Смертельный остаток: ограбление на блокчейне на 300 тысяч долларов, вызванное временным хранилищем

Смертельный остаток: ограбление в сети на 300000 долларов, вызванное временным хранением

Смертельные остатки: ограбление на $300,000, вызванное временным хранилищем

Смертельные остатки: ограбление на блокчейне на сумму 300 000 долларов, вызванное временным хранилищем

Смертельный остаток: ограбление на блокчейне на 300 000 долларов, вызванное временным хранилищем

Смертельные остатки: ограбление на сумму 300 000 долларов, вызванное транзитным хранилищем

Анализ движения средств

Злоумышленник похитил активы на сумму около 300 тысяч долларов, включая 17,814.8626 USDC, 1.4085 WBTC и 119.871 WETH. WBTC был обменен на 63.5596 WETH, а USDC был обменен на 9.7122 WETH. В итоге 193.1428 WETH были переведены на некую анонимную платформу. Первоначальный капитал злоумышленника поступил с этой платформы в размере 0.3 ETH.

Резюме

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

ETH4.48%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
VitaliksTwinvip
· 7ч назад
Эта волна обобщения все еще тратит Газ.
Посмотреть ОригиналОтветить0
CountdownToBrokevip
· 7ч назад
30w снова пришел братец
Посмотреть ОригиналОтветить0
0xLuckboxvip
· 7ч назад
Снова украли триста тысяч~смарт-контракты бережут безопасность, ха
Посмотреть ОригиналОтветить0
OnchainGossipervip
· 7ч назад
Снова попались на уязвимости, глупо или нет?
Посмотреть ОригиналОтветить0
GateUser-0717ab66vip
· 7ч назад
30w тоже смеет говорить
Посмотреть ОригиналОтветить0
VibesOverChartsvip
· 7ч назад
30w? Это всего лишь торговая комиссия за один день.
Посмотреть ОригиналОтветить0
DefiPlaybookvip
· 7ч назад
На основе выборки данных такие уязвимости хранения могут привести к потерям до 86,3%, будьте осторожны!
Посмотреть ОригиналОтветить0
  • Закрепить