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

robot
Генерация тезисов в процессе

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

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

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

Фон события

Атакующие использовали особенности временного хранения, введенные в версии Solidity 0.8.24. Это новое место хранения данных предназначено для предоставления временного способа хранения с низкой стоимостью, действительного в течение транзакции. Основные характеристики временного хранения включают:

  1. Низкая стоимость газа: операционные расходы фиксированы на уровне 100 gas.
  2. Долговечность транзакции: данные остаются действительными на протяжении всей транзакции.
  3. Автоматическое очищение: после завершения транзакции хранилище автоматически сбрасывается на ноль.

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

Корень атаки

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

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

Процесс атаки

  1. Злоумышленник создает два вредоносных токена A и B, а затем создает пул для этих токенов на одном DEX и вводит ликвидность.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Анализ потоков средств

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

  • 17,814.8626 USDC
  • 1.4085 WBTC
  • 119.871 ВТ

Эти активы затем были преобразованы в WETH и в конечном итоге переведены в какой-то анонимный инструмент. Начальный источник средств злоумышленника составил 0.3 ETH, переведенный из этого инструмента.

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

Рекомендации по безопасности

Чтобы предотвратить подобные атаки, команде проекта следует:

  1. Немедленно используйте tstore(key для очистки значений во временном хранилище после завершения вызова функции.
  2. Укрепить аудит кода контрактов и тестирование безопасности.
  3. Осторожно используйте новые введенные языковые особенности, полностью понимая их потенциальные риски.

Этот инцидент еще раз подчеркивает важность поддержания баланса между безопасностью и применением новых технологий в разработке проектов в блокчейне. С учетом постоянного развития технологий, разработчики и специалисты по безопасности должны оставаться бдительными, своевременно выявлять и реагировать на новые угрозы безопасности.

ETH6.79%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
MemeTokenGeniusvip
· 16ч назад
Как мило, что они запустили его без тестирования?
Посмотреть ОригиналОтветить0
quiet_lurkervip
· 16ч назад
Еще один проект был прижат и растерт на земле.
Посмотреть ОригиналОтветить0
PumpBeforeRugvip
· 16ч назад
Слышал, что на этот раз просто развернется и убежит~смарт-контракты маленькая уязвимость
Посмотреть ОригиналОтветить0
MEVHuntervip
· 16ч назад
Эти 30w слишком дешево, даже Срочные займы не хочется использовать.
Посмотреть ОригиналОтветить0
ContractSurrendervip
· 17ч назад
Старый проект Все в новые особенности Холодно...
Посмотреть ОригиналОтветить0
MissedAirdropAgainvip
· 17ч назад
Эх, всего лишь 30 тысяч мелочей.
Посмотреть ОригиналОтветить0
NeverPresentvip
· 17ч назад
Такие примитивные уязвимости могут сработать?
Посмотреть ОригиналОтветить0
  • Закрепить