安全事件 · 代币授权被滥用

Socket / Bungee安全事件(2024-01-16)

正文更新

Socket / Bungee发生了什么?

2024 年 1 月 16 日,攻击者利用 Socket 的 SocketGateway 合约(Bungee 聚合器使用)中一条新增路由,从约 200–230 个给过无限授权的钱包中转走约 330 万美元。Socket 在约 14 分钟内停用了该路由;在途资金未受影响。

来源: HalbornCertiKDefiLlamaSocket

基本事实

日期(UTC)
协议
Socket Protocol 的 SocketGateway 合约(Bungee 跨链聚合器所用)
报告损失
约 330 万美元,来自给 SocketGateway 无限授权的钱包(约 200–230 个) HalbornCertiKDefiLlama
根因
代币授权被滥用 — 新路由的 performAction 把未校验的 swapExtraData 直接用于调用,攻击者借此注入 transferFrom 盗取用户授权 HalbornCertiK
涉及链
Ethereum
追回情况
部分追回
官方复盘
Socket Incident Report 16 Jan

时间线

带具体时刻的条目为 UTC+8(北京时间);只有日期的条目按 UTC 日历日。

  1. 2024-01-13 — 新路由模块上线(攻击前三天),不在此前审计范围内。 Halborn
  2. 2024-01-17 03:03 — 攻击钱包获得资金;部署并执行两个攻击合约,针对 USDC 等授权。 CertiK
  3. 2024-01-16 — Socket 在发现后约 14 分钟内停用有漏洞的路由并部署修复。 Halborn
  4. 2024-01-18 / 19 — CertiK 与 Halborn 发布分析。 CertiK

资金去向与追回情况

有漏洞的路由在约 14 分钟内被停用并部署了修复(Halborn)。CertiK 追溯到攻击者的 gas 资金来自一笔 10 BNB 的 Tornado Cash 提款(CertiK)。

Socket 的事件报告称,受攻击的只是在 Ethereum 上给 SocketGateway 无限授权的钱包(Socket)。经谈判,攻击者退还了 1,032 ETH;Socket 宣布以美元计另拨 110 万美元补足差额,覆盖 232 个受影响钱包,领取时只需签名、无需任何授权(Blockworks;The Block)。尚未找到全部赔付完成的公告。

影响了哪些路线和桥?

给 SocketGateway 无限授权的钱包被转空;Socket 前端默认有限额授权,因此受害者约 200 个(Halborn)或 230 个钱包(CertiK)。跨链路线和在途资金不是攻击目标。该模块三天前才上线,不在此前审计范围内;Socket 称是误部署了审查前的版本(Halborn)。

本站相关桥评测: Bungee (Socket)

为什么会发生?

SocketGateway 是一个路由合约,每次兑换或跨链都会执行选定的“路由”模块。新模块的 performAction 接收调用者传入的 swapExtraData,并直接用于底层调用。调用数据由攻击者控制,于是攻击者编码了 transferFrom(受害者, 攻击者, 金额);由于调用来自受害者授权过的 SocketGateway,代币合约照单执行(Halborn;CertiK)。合约对原生代币余额的检查没能拦住,因为被盗的是 ERC-20 代币。

流程上的失误与代码一样关键:据 Halborn,该模块才上线三天、未经审计,而且误部署了审查前的版本。Socket 反应很快(约 14 分钟停用路由),缩短了攻击窗口;默认有限额授权则限制了波及范围。

半年后 LI.FI 遭遇的是同一类漏洞。聚合器路由合约持有大量用户的长期授权,因此每加一个新模块,实际上都在改变所有这些用户的安全性。可暂停的模块、部署前强制审查、默认有限额授权,是本次事件中真正起作用的控制手段。

与意图型桥对比很有启发。在 Across 这样的意图设计中,用户每次转账存入固定金额,除本次转账外不需要长期授权;而在带无限授权的路由设计中,暴露会一直持续到用户主动撤销。正是这种暴露时长的差异,而不是某个单独的漏洞,让一个上线三天的模块造成了数百万美元损失。

用户当时该怎么做?现在该怎么做?

当时

当时的保护措施是:Socket 发出警报后立即用代币授权撤销工具撤销对 SocketGateway 的授权;此后出现的任何“领取”“退款”网站,除非由 Socket 官方渠道链接,一律不碰。

现在

在 Bungee 及其他聚合器上只做精确金额授权,并撤销不用的授权。跨链前,核对钱包里显示的被授权地址是否与项目文档一致。注意:upswap 对 Socket/Bungee 的报价采样目前暂停,等待 API 密钥。

哪些内容仍待核实?

  • 待核实 全部补偿申请是否已支付(Socket 公布了计划,但未见完成公告)。

来源

6 个独立发布方,链接按标注日期核对。

  1. Explained: The Socket Protocol Hack (January 2024) — Halborn · 安全机构 · 核对于
  2. Socket Tech Incident Analysis — CertiK · 安全机构 · 核对于
  3. DefiLlama Hacks — Socket, 2024-01-16 — DefiLlama · 数据库 · 核对于
  4. Socket Incident Report 16 Jan — Socket · 官方 · 核对于
  5. Socket bridge victims will be made whole — Blockworks · 媒体 · 核对于
  6. Socket says it recovered 1,032 ETH following Bungee exploit last week — The Block · 媒体 · 核对于

如何引用本页?

Burn, A. / upswap.io(2026)。Socket / Bungee安全事件(2024-01-16)。更新于 2026-10-24。https://upswap.io/zh/incidents/bungee-2024#summary。CC BY 4.0。访问日期:____。

稳定锚点:#summary #facts #timeline #funds #affected #analysis #then #now #sources #cite