📢 Gate广场 #MBG任务挑战# 发帖赢大奖活动火热开启!
想要瓜分1,000枚MBG?现在就来参与,展示你的洞察与实操,成为MBG推广达人!
💰️ 本期将评选出20位优质发帖用户,每人可轻松获得50枚MBG!
如何参与:
1️⃣ 调研MBG项目
对MBG的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与MBG相关活动(包括CandyDrop、Launchpool或现货交易),并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是现货行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
MBG热门活动(帖文需附下列活动链接):
Gate第287期Launchpool:MBG — 质押ETH、MBG即可免费瓜分112,500 MBG,每小时领取奖励!参与攻略见公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通过首次交易、交易MBG、邀请好友注册交易即可分187,500 MBG!参与攻略见公告:https://www.gate.com/announcements
瞬态存储漏洞导致杠杆交易项目遭30万美元链上劫案
致命残留:瞬态存储引发的30万美元链上劫案
2025年3月30日,一场价值超30万美元的链上劫案在Ethereum网络上演。据安全监控系统显示,杠杆交易项目SIR.trading遭受攻击,损失惨重。安全团队对此事件进行了深入分析,现将调查结果公布如下。
事件背景
Solidity 0.8.24版本于2024年1月引入了瞬态存储(transient storage)特性。这是一种新的数据存储位置,旨在为开发者提供低成本、交易期间有效的临时存储方式。瞬态存储通过TSTORE和TLOAD两个新的EVM指令实现,具有低gas成本、交易内持久性和自动清除等特点。
攻击原因
本次事件的根本原因在于,函数中使用tstore进行瞬态存储的值在函数调用结束后并未被清空。攻击者利用这一特性,构造特定的恶意地址绕过权限检查,成功转出代币。
攻击过程
攻击者创建两个恶意代币A和B,并在某DEX上为这两个代币创建池子注入流动性,其中A代币为攻击合约。
攻击者调用Vault合约的initialize函数,以A代币为抵押品代币,B代币为债务代币创建杠杆交易市场APE-21。
攻击者调用Vault合约的mint函数,存入债务代币B铸造杠杆代币APE。在这个过程中,DEX池子地址和铸造数量被先后存入瞬态存储。
攻击者创建一个恶意合约,其地址与先前瞬态存储的铸造数量相同。
攻击者通过该恶意合约直接调用Vault合约的uniswapV3SwapCallback函数转出代币。由于瞬态存储中的值未被清空,导致身份检查被错误通过。
最后,攻击者通过攻击合约(A代币)调用Vault合约的uniswapV3SwapCallback函数,将Vault合约中的其他代币(WBTC、WETH)转出获利。
资金流向分析
根据链上分析工具的数据,攻击者盗取了约30万美元的资产,包括17,814.8626 USDC、1.4085 WBTC和119.871 WETH。随后,攻击者将这些资产兑换并转移:
值得注意的是,攻击者的初始资金来源于某匿名网络转入的0.3 ETH。
总结与建议
本次攻击利用了瞬态存储在整个交易期间保持不变的特性,成功绕过了回调函数的权限验证。为防范类似事件,建议项目方:
这一事件再次提醒我们,在采用新技术时务必谨慎,全面评估其安全影响。同时,持续的安全审计和风险管理对于保护用户资产至关重要。