header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
扫码下载APP

UXLINK被盗约1130万美元技术分析

2025-09-24 11:46
阅读本文需 11 分钟
攻击者通过一系列操作,包括调用Gnosis Safe Proxy合约的execTransaction函数和MultiSend合约,逐步移除其他Owner,最终接管合约并恶意铸造UXLINK代币。
原文标题:《UXLINK 被盗约 1130 万美元技术分析》
原文来源:ExVul Security


事件描述


9 月 23 日,UXLINK 项目多签名钱包私钥泄漏,导致约 1130 万美元资产的加密货币被盗取,并已被分散转移至多个中心化 (CEX) 和去中心化 (DEX) 交易所。在被攻击的第一时间,我们与 UXLINK 一起调查分析这起攻击以及监控了资金流动。UXLINK 紧急联系各大交易所请求冻结可疑资金,已向警方及相关机构报案以寻求法律支持和资产追回,黑客的大部分资产已被各大交易所标记冻结,从而最大程度地降低了社区面临的进一步风险。项目方承诺将对社区保持透明,ExVul 也将持续分析跟进事件进展。


(https://x.com/UXLINKofficial/status/1970181382107476362)


最新进展


在黑客资金流转过程中,流入交易所的资金已被冻结。通过初步链上追踪发现,此前盗取 UXLINK 资产的黑客,疑似遭遇 Inferno
Drainer 钓鱼攻击。经核实,其非法获取的约 5.42 亿枚$UXLINK 代币已被「授权钓鱼」手法窃取。


黑客被钓鱼交易: https://arbiscan.io/tx/0xa70674ccc9caa17d6efaf3f6fcbd5dec40011744c18a1057f391a822f11986ee


未经授权的 1B $UXLINK 铸币:https://arbiscan.io/tx/0x2466caf408248d1b6fc6fd9d7ec8eb8d8e70cab52dacff1f94b056c10f253bc2



攻击分析


1. 此前合约因多签 Owner 存在恶意操作或私钥泄露问题,致使恶意地址被添加为多签账户,同时合约的签名阈值(threshold)被重置为 1,即只需单一账户签名即可执行合约操作。黑客设置了新的 Owner 地址为 0x2EF43c1D0c88C071d242B6c2D0430e1751607B87。

(https://arbiscan.io/tx/0x8504a830e7a7a1ca0308a71130efdebddd78b90a1dcc8a64d7c1d86261754689)


2. 攻击者首先调用 Gnosis Safe Proxy 合约中的 execTransaction 函数。该函数成为恶意移除多签成员的入口,后续所有恶意操作均在此次交易的内部被执行。

(https://arbiscan.io/address/0x7715200141cfd94570bc9d97260ec974ee747972#code)


3. 在调用 execTransaction 时,攻击者在其 data 参数中指定了一个恶意操作:通过 delegatecall 方式调用 Safe: Multi Send Call
Only 1.3.0 实现合约。


(https://arbiscan.io/address/0x40a2accbd92bca938b02010e17a5b8929b49130d)


4. 在 Safe: Multi Send Call Only 1.3.0 的 multiSend 函数中,执行流回调至 Gnosis Safe Proxy 合约的 removeOwner。具体过程为:攻击者先通过对代理合约执行的 delegatecall 调用了 MultiSend 实现合约,使其在代理合约的上下文中运行 multiSend;随后,multiSend 根据攻击者构造的参数,以 call 方式回调 Gnosis Safe Proxy 合约自身并触发 removeOwner 函数,从而移除既有的 Owner 地址。



(https://arbiscan.io/address/0x40a2accbd92bca938b02010e17a5b8929b49130d#code)


5 调用能够成功的核心在于满足条件 msg.sender== address(this)。在 removeOwner 函数中,为了防止外部直接调用,合约设置了 authorized 验证,其内部逻辑通常要求调用者必须是合约自身 (msg.sender == address(this))。因此,只有当合约内部流程回调自身时,removeOwner 才会被成功执行。



6. 黑客通过上述手法逐一删除多签中的其他 Owner,破坏多签机制并最终接管合约。


7. 至此,攻击者通过不断重复上述步骤,导致原有的多签安全机制彻底失效。此时,仅凭单一恶意 Owner 的签名即可通过多签验证,从而实现对合约的完全控制。

(https://arbiscan.io/txs?a=0x2ef43c1d0c88c071d242b6c2d0430e1751607b87&p=2)


总结


由于多签 Owner 存在恶意操作或私钥泄露,攻击者将恶意地址添加为多签成员,并将 Gnosis Safe Proxy 的签名阈值(threshold)设置为 1,致使原有的多签安全设计彻底失效。此后,单一恶意 Owner 即可通过多签验证。攻击者继而逐步移除合约中的其他 Owner,最终实现对合约的完全控制,并进一步转移合约资产,在链上恶意铸造$UXLINK 代币。


本次攻击事件凸显了多签管理在区块链安全中的关键作用。尽管该项目采用了 Safe 多签机制并配置了多个多签账户,但由于管理方式存在缺陷,最终使多签设计形同虚设。ExVul 团队建议,项目方在多签管理上应尽量实现分散化,例如由不同成员分别保管私钥,并采取多样化的私钥存储方式,从而确保多签机制真正发挥应有的安全防护效果。


附录


以下为 ExVul 团队链上追踪到的疑似黑客地址:





本文来自投稿,不代表 BlockBeats 观点。


点击了解律动BlockBeats 在招岗位


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

AI 解读
这起事件再次暴露了多重签名钱包在实际应用中可能存在的致命弱点。表面上看,UXLINK 采用了行业标准的 Gnosis Safe 多签方案,理应具备较高的安全性,但问题恰恰出在“人”这个环节,而非技术本身。

核心漏洞在于多签权限的管理被彻底颠覆。攻击者并非通过暴力破解,而是利用私钥泄露或内部恶意操作,直接将自己添加为合法的多签所有者,并将签名阈值从通常的 M/N(如 2/3)降为 1。这一操作是致命的,它使得精心设计的多重签名机制退化为一个普通的单私钥控制账户,所有安全假设瞬间失效。

攻击手法上,攻击者利用的是 Gnosis Safe 合约自身的功能。通过 `execTransaction` 函数发起一笔“合法”交易,并在其内部通过 `delegatecall` 调用 `multiSend` 合约,最终回调并执行 `removeOwner` 函数。这里的精妙之处在于它绕过了 `removeOwner` 函数的外部调用限制——该函数要求调用者必须是合约自身(`msg.sender == address(this)`)。攻击者通过合约内部流程发起调用,完美满足了这一条件,从而得以逐个移除其他合法所有者,最终完成对资产的独占领。

讽刺的是,盗取巨额资产的黑客自身也未能幸免,其非法获得的代币后续疑似被 InfernoDrainer 钓鱼套走。这揭示了加密世界一个残酷的链条:安全漏洞会吸引攻击者,而攻击者自身也常因贪婪或疏忽成为更上层猎物的目标。

从更深层次看,此类事件反复提醒我们:在区块链上,代码即法律,但代码的执行依赖于私钥。私钥是最终的王权。无论多签设计得多么精巧,一旦私钥的保管环节失守,或权限管理逻辑被人为篡改,所有防御都会土崩瓦解。这要求项目方必须将“操作安全”提升到最高优先级,实现私钥的物理隔离、分散管理,并严格监控任何修改多签阈值或成员的操作。

最终,资产能够被部分冻结,得益于中心化交易所的快速响应与传统司法渠道的介入。这本身也是一个值得玩味的现象:去中心化系统发生安全事件后,往往仍需依赖中心化机构进行止损和追回。这起事件不仅是技术分析的案例,更是关于密钥管理、操作流程与人性弱点的全面警示。
展开
举报 纠错/举报
本平台现已全面集成Farcaster协议, 如果您已有Farcaster账户, 可以登录 后发表评论
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交