Смертельный остаток: кража в 300 000 долларов в блокчейне, вызванная временным хранилищем
30 марта 2025 года на сети Ethereum произошла цепочка ограблений на сумму более 300 тысяч долларов. Согласно данным системы безопасности, проект маржинальной торговли SIR.trading подвергся атаке и понес значительные убытки. Команда безопасности провела глубокий анализ данного инцидента и теперь публикует результаты расследования.
Фон события
Версия Solidity 0.8.24, которая будет выпущена в январе 2024 года, вводит функцию временного хранилища (transient storage). Это новое место для хранения данных, предназначенное для предоставления разработчикам временного хранилища с низкой стоимостью, действующего в течение транзакции. Временное хранилище реализуется с помощью двух новых инструкций EVM: TSTORE и TLOAD, обладая такими характеристиками, как низкая стоимость газа, долговечность в транзакции и автоматическое удаление.
Причины атаки
Основная причина данного инцидента заключается в том, что значения, хранящиеся во временном хранилище tstore в функции, не очищаются после завершения вызова функции. Злоумышленники использовали эту особенность, чтобы создать определённые вредоносные адреса и обойти проверку прав, успешно выведя токены.
Процесс атаки
Нападающий создает два злонамеренных токена A и B и создает пулы для этих токенов на одном DEX, внося ликвидность, при этом токен A является атакующим контрактом.
Атакующий вызывает функцию initialize контракта Vault, используя токен A в качестве залогового токена и токен B в качестве долгового токена для создания рынка с плечом APE-21.
Атакующий вызывает функцию mint контракта Vault, вносит долговой токен B для выпуска левередж-токена APE. В этом процессе адрес пула DEX и количество выпускаемых токенов последовательно сохраняются во временном хранилище.
Нападающий создает злонамеренный контракт, адрес которого совпадает с ранее временно хранимым количеством эмиссии.
Атакующий напрямую вызывает функцию uniswapV3SwapCallback контракта Vault через этот вредоносный контракт для вывода токенов. Поскольку значения во временном хранилище не были очищены, проверка идентичности была ошибочно пройдена.
Наконец, злоумышленник, атакуя контракт (токен A), вызывает функцию uniswapV3SwapCallback контракта Vault, чтобы вывести другие токены (WBTC, WETH) из контракта Vault для получения прибыли.
Анализ потоков средств
Согласно данным инструментов анализа в блокчейне, злоумышленник украл активы на сумму около 300 000 долларов, включая 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, чтобы очистить значения во временном хранилище.
Укрепить аудит кода контрактов и тестирование безопасности, особенно обращая внимание на риски использования новых функций.
Реализуйте многоуровневый механизм проверки, не полагаясь только на единую проверку личности.
Периодически проводить оценку безопасности, своевременно выявлять и исправлять потенциальные уязвимости.
Это событие еще раз напоминает нам о необходимости осторожности при внедрении новых технологий и всесторонней оценки их влияния на безопасность. В то же время постоянный аудит безопасности и управление рисками крайне важны для защиты активов пользователей.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
18 Лайков
Награда
18
6
Поделиться
комментарий
0/400
GhostChainLoyalist
· 07-23 20:02
упущено咯 又是一个被 разыгрывайте людей как лохов проект
Посмотреть ОригиналОтветить0
HypotheticalLiquidator
· 07-23 17:12
300000? Это то, что происходит на рынке...
Посмотреть ОригиналОтветить0
P2ENotWorking
· 07-20 21:17
команда проекта снова спит
Посмотреть ОригиналОтветить0
BlockchainRetirementHome
· 07-20 21:16
Снова смарт-контракты будут играть для лохов
Посмотреть ОригиналОтветить0
DYORMaster
· 07-20 20:49
Хорошо выглядит, но не работает, код даже не проверяется.
Уязвимость временного хранения привела к маржинальной торговле, в результате чего проект стал жертвой кражи в 300000 долларов в блокчейне.
Смертельный остаток: кража в 300 000 долларов в блокчейне, вызванная временным хранилищем
30 марта 2025 года на сети Ethereum произошла цепочка ограблений на сумму более 300 тысяч долларов. Согласно данным системы безопасности, проект маржинальной торговли SIR.trading подвергся атаке и понес значительные убытки. Команда безопасности провела глубокий анализ данного инцидента и теперь публикует результаты расследования.
Фон события
Версия Solidity 0.8.24, которая будет выпущена в январе 2024 года, вводит функцию временного хранилища (transient storage). Это новое место для хранения данных, предназначенное для предоставления разработчикам временного хранилища с низкой стоимостью, действующего в течение транзакции. Временное хранилище реализуется с помощью двух новых инструкций EVM: TSTORE и TLOAD, обладая такими характеристиками, как низкая стоимость газа, долговечность в транзакции и автоматическое удаление.
Причины атаки
Основная причина данного инцидента заключается в том, что значения, хранящиеся во временном хранилище tstore в функции, не очищаются после завершения вызова функции. Злоумышленники использовали эту особенность, чтобы создать определённые вредоносные адреса и обойти проверку прав, успешно выведя токены.
Процесс атаки
Нападающий создает два злонамеренных токена A и B и создает пулы для этих токенов на одном DEX, внося ликвидность, при этом токен A является атакующим контрактом.
Атакующий вызывает функцию initialize контракта Vault, используя токен A в качестве залогового токена и токен B в качестве долгового токена для создания рынка с плечом APE-21.
Атакующий вызывает функцию mint контракта Vault, вносит долговой токен B для выпуска левередж-токена APE. В этом процессе адрес пула DEX и количество выпускаемых токенов последовательно сохраняются во временном хранилище.
Нападающий создает злонамеренный контракт, адрес которого совпадает с ранее временно хранимым количеством эмиссии.
Атакующий напрямую вызывает функцию uniswapV3SwapCallback контракта Vault через этот вредоносный контракт для вывода токенов. Поскольку значения во временном хранилище не были очищены, проверка идентичности была ошибочно пройдена.
Наконец, злоумышленник, атакуя контракт (токен A), вызывает функцию uniswapV3SwapCallback контракта Vault, чтобы вывести другие токены (WBTC, WETH) из контракта Vault для получения прибыли.
Анализ потоков средств
Согласно данным инструментов анализа в блокчейне, злоумышленник украл активы на сумму около 300 000 долларов, включая 17 814,8626 USDC, 1,4085 WBTC и 119,871 WETH. Затем злоумышленник обменял и перевел эти активы:
Следует отметить, что начальный капитал злоумышленника поступил из анонимной сети в размере 0.3 ETH.
Итоги и рекомендации
Это нападение использовало характеристику временного хранения, сохраняющегося неизменным на протяжении всей транзакции, и успешно обошло проверку прав доступа к функции обратного вызова. Для предотвращения подобных инцидентов рекомендуется проектной стороне:
Это событие еще раз напоминает нам о необходимости осторожности при внедрении новых технологий и всесторонней оценки их влияния на безопасность. В то же время постоянный аудит безопасности и управление рисками крайне важны для защиты активов пользователей.