2023年4月9日,SushiSwap 因未验证的外部参数漏洞而遭到攻击。此次事件造成的总损失约为330万美元。
作为以太坊生态中拥有庞大用户群的头部协议,此类顶级协议在合约升级过程中仍有可能引入严重的漏洞。这再次提醒 DeFi 社区,安全永远应放在首位。 此外,本次安全事件是由一名白帽安全研究员试图营救资金的操作所触发的,这在社区内引发了广泛讨论。我们在此对该事件进行简要介绍,并将其列为2023年十大安全事件之一。
背景
SushiSwap
SushiSwap 是一流的去中心化交易所(DEX),曾对 Uniswap 发起“吸血鬼攻击”并取得了巨大成功。其锁仓量(TVL)巅峰时期曾达到80亿美元,目前仍维持在4亿美元左右。
授权(Approval)
简而言之,授权即授予特定合约访问并从你的钱包中转出某种代币的权限。
为了方便起见,许多合约默认会请求无限额的授权。许多用户因担心安全风险,只会在各个协议中存入少量资金。然而,这些用户却授予了协议无限的资金额度授权。如果某个协议遭到攻击,账号中所有已授权的代币都可能损失殆尽。
漏洞分析
未验证的外部参数
RouteProcessor2 合约的 processRoute() 函数允许用户完全控制调用流程(通过参数 route)。
而在 uniswapV3SwapCallback() 函数中,safeTransferFrom() 的参数 from 是从用户传入的 route 中解码出来的。
因此,所有授权过 RouteProcessor2 合约的用户资产均面临被盗风险。
攻击过程
本次事件涉及多笔攻击交易,我们以第一笔攻击交易为例进行说明。 交易哈希:0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9
- 攻击者调用了存在漏洞的 RouteProcessor2 合约的
processRoute()函数,传入了一个精心构造的长参数route。
processRouteInternal()根据用户提供的route创建了一个InputStream。
- 交易流程按照攻击者构造的
route执行,直至到达swapUniV3()。值得注意的是,pool是从stream中解码出来的,这意味着攻击者可以控制在哪个pool中进行swap(),并将其设置为lastCalledPool。
- 这调用了攻击者部署的恶意合约,攻击者随后只需传递恶意的
calldata来回调 RouteProcessor2 的uniswapV3SwapCallback()。 uniswapV3SwapCallback()本应有msg.sender检查,但由于lastCalledPool已被篡改为恶意合约,攻击者成功绕过了该检查。关键在于,safeTransferFrom()的参数from是从攻击者构造的calldata中解码出来的。
- 受害者的资产被转移到了攻击者部署的恶意合约中。
争议性的白帽营救
值得一提的是,一位名为 @trust__90 的白帽发现并试图营救资金,但这一营救尝试引发了灾难。
- 他直接使用内存池(mempool)广播交易,而不是通过私有 RPC 节点。
- 他试图仅营救100个以太币,而非全部处于风险中的资产。
这一举动为 MEV 机器人和其他攻击者打开了方便之门,他们通过执行多笔模仿攻击交易,迅速抽走了大部分资金。事发后,@trust__90 面临舆论压力并试图为自己的行为辩护。
人们在不了解情况的情况下发表各种可怕的言论,所以允许我分享更多细节。
— Trust (@trust__90) April 10, 2023
我在白帽行动前3小时已私下与 Immunefi 官方进行了协调。90分钟后,我意识到资产正被前端使用,并且……
BlockSec 的营救行动
在此次攻击中,我们也成功拦截了一笔由 MEV 机器人发起的攻击,并找回了100个以太币,随后将其归还给了受害者 0xsifu。
迄今为止,我们已成功阻断超过20起真实的黑客攻击,救回了价值超过1400万美元的资产。嘿,@0xsifu,我们已成功阻止一笔攻击交易并救回了100个以太币。请与我们联系。
— BlockSec (@BlockSecTeam) April 9, 2023
安全建议
合约升级必须经过审计
这再次提醒 DeFi 社区,安全永远应放在首位。审计并不能保证绝对安全,但缺乏审计则绝对无法保证安全。
针对授权问题的缓解措施
2023年出现了大量涉及授权漏洞的攻击事件,我们借此机会重申管理代币授权的重要性。 最佳实践是仅授予必需的额度;如果必须考虑便利性,也应仅在必要基础之上稍微多授权一点额度。
BlockSec 的 MetaSuites 提供了便捷的“授权检测”功能。此外,用户还可以使用 Revoke Cash 等工具定期检查自己的授权状态。
采用监控与自动响应机制
以太坊生态是一个黑暗森林,即使是安全专家,DeFi 社区的每一个人也都面临着各种风险和挑战。 2023年,我们推出了 Phalcon Security,这是业内首个自动化响应系统,其设计初衷不仅在于监控攻击,更在于实时主动拦截威胁。Phalcon 经受住了实战考验,至今已成功阻断超过20起真实黑客攻击,挽回资产价值超过1400万美元。这一创新确保了所有利益相关者能在采取主动保护措施的前提下,更加放心地参与投资。
阅读本系列的其他文章:
- 导言:2023年十大“令人惊叹”的安全事件
- #1:通过利用 Flashbots Relay 中的漏洞猎取 MEV 机器人
- #2:Euler Finance 事件:2023年规模最大的黑客攻击
- #3:KyberSwap 事件:精妙利用舍入误差与极度细微的计算
- #4:Curve 事件:编译器错误导致无问题的源代码生成了错误的字节码
- #5:Platypus Finance:凭借运气侥幸度过三次攻击
- #6:Hundred Finance 事件:引发脆弱分叉协议中精度相关漏洞的连环效应
- #7:ParaSpace 事件:与时间赛跑,阻断行业迄今为止最关键的攻击
- #9:MEV 机器人 0xd61492:从掠食者到猎物的一场天才式利用
- #10:ThirdWeb 事件:受信任模块之间的不兼容性引发的安全漏洞



