风险提示:理性看待区块链,提高风险意识!
数据验证环节漏洞导致损失 330 万美元,详解 Socket 攻击事件始末
首页 > 业界 > 区块链 2024-02-05 18:40:00
币界网报道:
2024 年 1 月 16 日,Socket Tech 遭到攻击,损失约 330 万美元,本文详解攻击事件始末。


撰文:CertiK



2024 年 1 月 16 日,Socket Tech 遭到攻击,损失约 330 万美元。攻击者利用了 Socket 某合约中数据验证环节的漏洞,通过恶意数据输入盗取了授权合约的用户资金。这次攻击共给 230 个地址带来损失,最大的单地址损失约为 65.6 万美元。


背景介绍


Socket 是一种服务于跨链安全、高效数据和资产传输的互操作性协议。Socket Gateway 合约是与 Socket 流动性层所有交互的接入点,所有资产桥接器和 DEX 在此汇聚成一个唯一的元桥接器,并根据用户偏好(如成本、延迟或安全性)选择最佳交易路由。


黑客攻击发生的前三天,Socket 合约管理员执行了 addRoute 命令,在系统中加入了一条新路由。添加路由的目的是扩展 Socket 网关的功能,但却无意中引入了一个关键漏洞。

下图为通过合约管理员添加路由的记录:



事件梗概


1.北京时间 1 月 16 日 15:03,攻击者钱包转入攻击所用资金,我们的时间分析表明这笔资金来自 0xe620,与从 Tornado Cash 提取的 10 BNB 有关。



2.这些资金被用于创建和执行两个合约来利用 Socket 的漏洞。第一个合约针对的是授权了 SocketGateway 的地址中的 USDC(截图如下)。127 名受害者被骗走约 250 万美元。



3.接下来,第二个合约则将目标对准了受害者地址内的 WETH、USDT、WBTC、DAI 与 MATIC。于是,另外 104 名受害者损失了约如下资产:


  • 42.48 WETH
  • 347,005.65 USDT
  • 2.89 WBTC
  • 13,821.01 DAI
  • 165,356.99 MATIC


4.攻击者将 USDC 与 USDT 转换成了 ETH。



漏洞来源


被攻击者利用的漏洞存在于新添加的路由地址 routeAddress 内的 performAction 函数中。


该地址内的 performAction 函数原本的功能是协助 Wrapping 与 Unwrapping 的功能。


然而,该函数中出现了一个关键漏洞:用户在无需验证的情况下,直接在.call() 中通过 swapExtraData 调用外部数据,这意味着攻击者可以执行任意恶意函数。



在这次事件中,攻击者制作了一个恶意的 swapExtraData 输入,触发 transferFrom 函数。该恶意调用利用了用户对 SocketGateway 合约的授权,从他们那里盗走了资金。


虽然合约会通过检查余额检查确保 fromToken.call() 调用后用户余额会出现正确的变化,但该函数没有考虑攻击者将金额设置为 0 的情况。



还原攻击流程


1.使用攻击合约,攻击者在 Socket Gateway 合约上调用了 0x00000196()。



2.fallback() 使用六进制签名 196 调用了有漏洞的路由地址合约(routerAddress)。



3.在下面的截图中,我们可以看到攻击者使用的虚假输入,Swapping 数量全部为 0。



4.接下来将调用 WrappedTokenSwapperImpl.performAction() 进行 Swap。



5.在没有进行任何验证的情况下,虚假的 SwapExtraData 被 fromToken (WETH) 接受并执行。



6.攻击者重复执行以上流程,直到受害者资产耗尽。恶意交易出现后,Socket 迅速调用了 disableRoute,屏蔽了之前有漏洞的路由,阻止了更大范围的攻击。


7.1 月 23 日,Socket 宣布已经追回 1032 枚 ETH,并在 25 日宣布将全额补偿所有损失。本次事件得到解决。



事件总结


在有着无限额用户授权的路由合约中,恶意 calldata 攻击并不罕见。


以前类似的攻击包括 Dexible 和 Hector Bridge。


2023 年 2 月 17 日,去中心化交易所 Dexible 被攻击,损失超过 150 万美元。漏洞利用者向 Dexible 的 fill() 函数输入恶意 calldata,以窃取用户资产。


2023 年 6 月 2 日,Hector 网络的协议被攻击。攻击者部署了一个虚假的 USDC 合约,并通过恶意 calldata,将 65.2 万枚真实的 USDC 从受害者的合约中转移出去。


区块链聚合平台通常通过封装一系列桥和路由合约来提高流动性,减少损耗。然而,这种复杂的封装会给安全性带来更多难题。


Socket 此次事件可以得到解决无疑是各方努力的结果,CertiK 也将继续致力于为平台提供全方位审计与检测,降低各类聚合风险,提高社区信任和整个行业的安全水平。

上一篇: Frames:Farcaster 里的小程序魅力何在?
下一篇: Mode的TVL火箭队在宣布空投活动后四天内突破6000万美元
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
63,825.08 USDT
¥455,525.97
+1.36%
ETH以太坊
3,312.04 USDT
¥23,638.36
+6.12%
BNB币安币
599.16 USDT
¥4,276.26
+1.06%
USDT泰达币
1.02 USDT
¥7.27
-0.48%
SOL
143.90 USDT
¥1,027.02
+5.08%
XRP瑞波币
0.52360 USDT
¥3.74
+1.2%
USDC
1.00 USDT
¥7.15
-0.02%
DOGE狗狗币
0.14980 USDT
¥1.07
+2.74%
TON
5.50 USDT
¥39.24
+5.27%
ADA艾达币
0.47430 USDT
¥3.39
+3.6%
热搜币种
更多
币种
美元价格
24H涨跌幅
柚子
0.8195 USDT
¥5.94
-1.06%
比特币
63807.11 USDT
¥462,320.80
+1.33%
Solana
143.21 USDT
¥1,037.64
+5.26%
Hedera Hashgraph
0.1067 USDT
¥0.77
-0.93%
Filecoin
5.9969 USDT
¥43.45
+2.96%
字节元
0.017633 USDT
¥0.13
+4.8%
狗狗币
0.1497 USDT
¥1.08
+2.75%
Shiba Inu
2.497E-5 USDT
¥0.00
+1.18%
Yield Guild Games
0.9057 USDT
¥6.56
+6.58%
NEAR Protocol
7.312 USDT
¥52.98
+1.72%
币安币
599.13 USDT
¥4,341.06
+1.02%
Conflux
0.2432 USDT
¥1.76
+2.57%
最新快讯
更多
被Brett部署者列入白名单的2个地址通过买入BRETT获利30,830倍
2024-04-28 14:30:37
被BrettDeployer列入白名单的2个钱包通过买入BRETT获利30,830倍
2024-04-28 14:30:37
HedgeyFinance黑客将盗取的资金兑换成ETH
2024-04-28 14:25:10
众议员FrenchHill:如果稳定币立法与大麻银行法案相结合,将投票支持该法案
2024-04-28 14:19:24
EigenLayerTVL超过160亿美元,创下新纪录
2024-04-28 14:17:41
MerlinStarter将推出模块化Launchpad服务,首个合作项目为BridgeM
2024-04-28 14:11:43
2024年是加密货币的关键年,面临比特币ETF和监管挑战
2024-04-28 14:03:01
下载币界网APP