北京时间2023年4月9日,SushiSwap的 RouteProcessor2合约存在权限校验漏洞,攻击者已获利约330万美元。
【资料图】
SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
此次攻击包含了多笔交易,以其中一笔交易为例进行分析。
攻击者地址:
0x719cdb61e217de6754ee8fc958f2866d61d565cf
攻击合约:
0x000000c0524f353223d94fb76efab586a2ff8664
漏洞合约:
0x044b75f554b886A065b9567891e45c79542d7357
攻击交易:
0xea3480f1f1d1f0b32283f8f282ce16403fe22ede35c0b71a732193e56c5c45e8
该攻击交易的执行流程:
(1)首先,攻击者(0x719cdb61)先调用了漏洞合约(0x044b75f5)的 processRoute 函数。
(2) 在 processRoute 函数中,通过输入参数route判断调用 processMyERC20。
(3)攻击者所控制的stream参数,通过processMyERC20 -> distributeAndSwap -> swap 等一系列函数调用,最终调用了swapUniV3 函数。
(4)在swapUniV3 函数中,pool 值是由攻击者控制的 stream 参数值解析而成,实际就是攻击合约。解析后的 pool 值赋给lastCalledPool,此时的lastCalledPool 就是攻击者控制的恶意值(即攻击合约),然后调用了pool即攻击合约自定义的swap函数。
(5)通过swap函数回调了漏洞合约中的uniswapV3SwapCallback函数,成功提取100枚ETH。
漏洞分析:
在swapUniV3函数中,pool值来自于攻击者恶意构造的stream参数值,实际为攻击合约,然后调用了攻击合约中自定义的swap函数。
在swap函数中又回调了漏洞合约中的uniswapV3SwapCallback函数。
由于lastCalledPool在swapUniV3函数中设置为了pool值(即攻击合约地址),在回调uniswapV3SwapCallback函数时,msg.sender == lastCalledPool为true,直接绕过了对msg.sender是否是真实的pool地址的权限校验,并且通过参数构造token进行传参,窃取了账户授权给漏洞合约过多尚未使用的WETH。然后将lastCalledPool设置为常量IMPOSSIBLE_POOL_ADDRESS,从而通过了swapUniV3函数中最后的对lastCalledPool==IMPOSSIBLE_POOL_ADDRESS的require校验。
漏洞总结:
本次事件根本原因是漏洞合约(RouteProcessor2)未对回调调用者进行是否是uniswapV3 factory部署的V3池检查,只是检查是否是原来lastCalledPool 的值,导致了账户授权给RouteProcessor2合约过多尚未使用的资金被盗取。
针对本次攻击事件,我们在开发过程中应遵循以下注意事项:
(1)在用户与合约交互的每个业务模块中,应遵循最小权限原则,合理授权单笔交易实际数量,避免过多金额授权导致账户资金损失。
(2)在类似uniswapV3SwapCallback回调函数中,应当验证调用者是否是uniswapV3 factory部署的V3池。
SharkTeam的愿景是全面保护Web3世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作关系。
Twitter:https://twitter.com/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
Telegram:https://t.me/sharkteamorg
更多区块链安全咨询与分析,点击下方链接查看
D查查|链上风险核查https://app.chainaegis.com
标签:
仓储物流“成渝圈”如何乘势而上? 12月3日,连接昆明和万象的中老铁路全线开通运营,被惠及的显...
两件西周青铜簋时隔三千年成功配对 考古工作者介绍,这个铜簋的盖、身分别时隔40余年出土,纹饰...
“医保砍价”不是一个人在战斗 晁星 “我眼泪都快掉下来了”“每一个小群体都不该被放弃”…...
“购物成瘾”真的是一种病 刘艳 牛雅娟 本周日即将迎来“双十二”促销季,很多人又开始摩拳...
因迷恋山间风景,一男子在甘孜州稻城县海拔4000多米的无人区迷失方向,随后与同伴失联。12月的稻城...
嫌疑人DNA信息比中后,成都市公安局刑侦支队技术处DNA实验室民警白小刚一下坐在凳子上,恍惚迟疑间...
一批反映南京大屠杀历史的新书发布 新华社南京12月7日电(记者邱冰清、蒋芳)“以史为鉴,开创未来...
我在现场·照片背后的故事|电影《亲爱的》里面没有的结局,在我眼前“上映” 12月6日,在深圳市...
冥想?泡脚?不如听听助眠音乐 晚上睡不着,白天睡不醒,成为最贴合都市人群的“睡眠画像”。随...
养老话题 老年教育面临缺口 “终身教育”潜力无限 【现实挑战】“新老年”群体愿意在培养兴...
孙海洋被拐14年儿子如何找到的? 警方侦办另一宗拐骗儿童案时发现线索,通过人像比对、DNA确认找...
北京天文馆、圆明园将对未成年人免费开放 12月6日,北京天文馆发布通知称,12月8日起试行对未成...
今年全国粮食总产量再创新高 连续7年保持在1 3万亿斤以上 根据对全国31个省(区、市)的抽样调...
斑块软的很危险 硬的就无碍? 血管里的“垃圾”分类 赶快学起来! 一项最新研究显示:中国...
诺西那生钠注射液大幅降价 聚焦医保谈判背后脊髓性肌萎缩症家庭 医保目录公布那天 好多家长都...
抖音“窗花剪剪”遭抄袭 被判获赔20万元 法院认为“窗花剪剪”的这种表达方式理应受到《著作权...
公安机关近日侦破3起拐卖儿童案件 失散十几年 3组家庭终于团圆了 北京青年报记者12月6日从公...
2021年度十大网络用语发布 本报讯(记者 路艳霞)作为年度“汉语盘点”活动最具网络特色的组成部...
北京天文馆向未成年人免费开放 本报讯(记者 牛伟坤)北京天文馆对票价免费及优惠政策作出调整:1...
2021北京百个网红打卡地发布 本报讯(记者 李洋)2021北京网红打卡地推荐榜单昨晚正式发布。自然...