数据验证环节漏洞导致损失330万美元 详解Socket攻击事件始末

2024-02-04 17:02:24

来源: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从受害者的合约中转移出去。

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

郑重声明:本文版权归原作者所有,转载文章仅为传播信息之目的,不构成任何投资建议,如有侵权行为,请第一时间联络我们修改或删除,多谢。

推荐文章

btc日内再次下跌 短线应当如何处理?

尽管以太坊现货ETF获批是个好消息,但市场反应却不如预期。在消息公布后,以太坊价格出现了小幅下跌,...

加密莲
926 1年前

7月23日、BTC(合约)ETH(合约)行情分析及操作策略

昨日收益还是不错的,日内给出的现价空单分别止盈我们目标点位,恭喜跟上的朋友吃肉。时间一晃到月底了,...

倪老师
915 1年前

币圈院士:血与泪的教训!交易者为何总是撞死在同一棵树上?

币圈院士谈。交易市场中的几种“死法” 在币圈市场鳞次栉比的海洋,风起云涌,时常让人感到惊手不及。在...

币圈院士
904 1年前

7月23:Mt. Gox 比特币钱包在市场紧缩的情况下转移了价值 28.2 亿美元的 BTC

7月23:Mt. Gox 比特币钱包在市场紧缩的情况下转移了价值 28.2 亿美元的 BTC一个引...

168超神
884 1年前

悦盈:比特币68000的空完美落地反弹继续看跌 以太坊破前高看回撤

一个人的自律中,藏着无限的可能性,你自律的程度,决定着你人生的高度。 人生没有近路可走,但你走的每...

我是周悦盈
883 1年前

btc完美盈利 晚间波动较大注意

昨日btc空单完美给到,最大化走出一千七百点空间~ btc: 日内开盘下跌继续测试66000一线,...

加密莲
867 1年前