在过去两周(2026/09/21 - 2026/10/04)内,发生了 8 起区块链安全事件,估计总损失约为 4.184 亿美元。
| 日期 | 事件 | 类型 | 估计损失 |
|---|---|---|---|
| 2026/09/23 | Meter Passport | 区块验证缺陷 | ~230 万美元 |
| 2026/09/24 | Payy Network | 疑似证明系统健全性缺陷 | ~190 万美元 |
| 2026/09/24 | Limit Break | 调用数据验证不当 | ~770 万美元 |
| 2026/09/24 | Duelbits | 根本原因未披露 | ~700 万美元 |
| 2026/09/24 | Bitget | 第三方安全产品漏洞 | ~3.875 亿美元 |
| 2026/09/27 | DYORSwap | 网络配置验证不足 | ~210 万美元 |
| 2026/09/30 | NEAR Intents | 退款验证不当且缺少回滚 | ~390 万美元 |
| 2026/10/04 | 未具名 Base 金库 | 访问控制不当 | ~600 万美元 |
选取理由
- Bitget:该事件占本期损失的大部分,攻击链条通过伪造提现指令实现了链下入侵向链上有效转账的转化,期间并未发生私钥或智能合约被攻破的情况。
- NEAR Intents:一个退款验证缺陷以及缺失的状态回滚,使失败的跨链存款结算过程产生了无资产支撑的内部余额,而该余额能够通过正常的提现路径被使用。
Web3 领域最佳安全审计方
在上线前验证设计、代码和业务逻辑
Bitget
9 月 24 日,约 3.875 亿美元从 Bitget 部分热钱包和温钱包基础设施中流出,涉及以太坊及其他 EVM 网络、XRP Ledger、Zcash 和 TRON。链上交易携带有效的钱包签名。Bitget 表示,攻击者利用第三方安全产品的漏洞,获取了内网访问凭证,并伪造了提现指令,而私钥和冷钱包仍然安全[1][2]。
事件概述
独立调查报告为攻击路径补充了细节,但未透露受影响的两个安全产品的名称。SlowMist 追溯产品 A 上最早的恶意活动发生于 8 月 31 日,并识别出影响某节点上某项服务的零日漏洞。Mandiant 发现攻击者获得了对两个安全设备的特权访问,在产品 B 上发现了 Web Shell 和命令与控制连接,并发现攻击者横向移动至生产钱包任务服务器。
SlowMist 另外发现,攻击者使用内部员工身份访问了产品 B 的管理平台。调查人员还发现了一个定制的提现工具,该工具伪造风控参数、构造提现请求并调用提现流程。攻击者如何在所涉及的所有系统之间移动仍在调查中。公链记录的是最终已签名的转账,而非这些上游操作。
链上记录显示,最早的资金转移发生在 UTC 18:31,为 93 个 TRX,11 秒后又转出 0.84 个 ETH。根据 Bitget 目前的时间线,对账检测发生于 UTC 19:05,最高级别的应急响应于 UTC 19:14 启动[1]。另一笔 2059 万个 TRX 的转账于 UTC 19:16 到达攻击者控制的 TRON 地址;Chen 描述了另外 8 条网络上共计约 3.61 亿美元的 17 笔更大规模转账[3]。遏制行动于 UTC 19:40 开始,钱包提现和签名服务于 UTC 21:44 关闭[1]。
资金状态与社区响应
9 月 29 日 UTC 16:35:28,Bitget 官方资金追踪页面显示,攻击者当前持有资金 3.2267 亿美元,约 63.27 万美元被冻结,31.25 万美元为发行方可冻结的稳定币,另有 5587 万美元仍在转移中或仍在分析中。该页面另外的地址视图显示,余额集中在 BTC(2.8851 亿美元)、ZEC(2891 万美元)和 ETH(717 万美元);该视图使用了与概览不同的分类范围。
Binance 共享情报并协助资金追踪,Bybit 更新了 LazarusBounty 并提供协助[4][5]。基础设施提供方做出了不同的选择。Bitget 要求 THORChain 拒绝为列出的攻击者地址提供服务,认为去中心化不应该成为已知被盗资金流通的保护伞[6]。THORChain 拒绝了选择性黑名单,并表示其控制措施只能暂停更大范围的活动或某条链路由,而非单个地址或交易[7]。
NEAR Intents 报告称,SHIELD 在过滤重复项后识别并阻止了超过 5000 万美元与攻击者相关的尝试性资金流动。约 50.3 万美元在执行过程中被冻结,约 16.6 万美元得以通过;该 5000 万美元为尝试性流动金额,并非被冻结或追回的金额[8]。该追踪页面随后将 NEAR Intents 处的 293,507 美元分类为已冻结,但公开资料中未对这一差异进行说明。
经验教训
- 攻击者通过第三方安全产品进入系统,抵达钱包任务服务器,并将伪造的提现请求转化为有效签名的交易。任何具有此类接触范围的第三方产品都应被纳入有效的资产安全边界:机构应对其进行隔离,限制身份与权限,监控其行为,并在签名前独立验证提现意图。
- 恢复资金的权限分散在交易所、稳定币发行方、路由服务和基础协议之间,因此没有任何单一参与方能够独自管理应对工作。受影响机构需要迅速共享经过验证的地址和交易数据,而基础设施提供方和安全团队则需要在各自的技术和治理约束下协调追踪、冻结、交易筛查和资金恢复工作。
- 关于从本次事件中得出的预防性控制措施,请参阅 Bitget 的 3.875 亿美元链下入侵事件:超越私钥与合约,该文构建了一个涵盖特权访问、提现意图、资产流动监控和应急响应的纵深防御框架。
NEAR Intents
9 月 30 日至 10 月 1 日期间,intents.near 中出现的退款验证缺陷和状态回滚缺失,使得 NEAR Intents 损失了约 387 万美元,该缺陷创建了一个没有对应资产支撑的内部余额。攻击者利用该余额获取了有效的 HOT MPC 提现签名,并从该协议位于 BNB Chain 的金库中释放出真实的 USDT[9][10]。
背景
NEAR Intents 是 NEAR 上的一个意图执行系统。其核心合约 intents.near 持有全链资产(omni-asset),记录用户的内部余额,并根据已签名的意图处理资产兑换与提现。
对于一次跨链存款,源链上的金库会锁定真实资产。Omni 在 NEAR 上创建相应的全链资产,并将其转移给 intents.near,后者再为用户的内部余额记入相应金额。

对于一次提现,intents.near 会要求 Omni 销毁相应的全链资产并创建提现记录。HOT MPC 验证该记录并签发签名。目标链上的金库会在释放真实资产之前验证该签名。此流程要求 intents.near 所记录的内部余额始终由该合约实际持有的全链资产提供支撑。

漏洞分析
在跨合约转账完全结算之前,存款路径就已经为接收方的内部余额记入了款项。在结算过程中,resolve_deposit_internal() 使用接收方该代币的总余额来限制接收方可控的 requested_refund,但并未使用 deposited(即当前正在结算的这笔存款中实际转入的金额)来对其加以限制。总余额仅反映了该账户可支付的金额;而 deposited 才决定了这笔转账所允许退款的额度。由于缺少这第二重限制,拥有大量预先存在余额的接收方就可以请求远超当前存款金额的退款[10]。

对于包含多个长代币 ID 的批量存款,错误的退款数值会放大序列化后的 MtBurnEvent。随后,check_refund().unwrap_or_panic_display().emit() 路径在该事件超出 NEAR 日志总长度限制时发生了 panic,导致 mt_resolve_deposit 收据执行失败。

内部余额的记入发生在更早的一个收据中。该 panic 回滚了回调收据中试图进行的余额与供应量扣减操作,但并未撤销之前那次更早的记入操作。随后 Omni 将已转移的资产返还给发送方,使攻击者获得了一笔可提现的内部余额,而该余额已不再与 intents.near 实际持有的全链资产相匹配。该漏洞将退款验证缺陷与异步收据序列中缺失的状态回滚结合在一起。
攻击分析
以下重建基于公开可获得的信息[11]。
阶段一:在 NEAR 上创建无支撑的内部余额
-
步骤一:攻击者通过 BNB Chain 的 Omni/HOT 金库存入 10 个
USDT,使该恶意接收账户在 NEAR 上获得了非零的全链资产余额。 -
步骤二:攻击者在
v2_1.omni.hot.tg上调用了mt_batch_transfer_call()。在mt_on_transfer()中,intents.near首先通过deposit()为接收方记入款项,随后通知该恶意接收方,并将其响应传递给mt_resolve_deposit()。 -
步骤三:该恶意接收方返回了一个远超当前存款金额的
requested_refund。由于验证逻辑使用接收方的总代币余额作为其上限,该异常数值得以进入退款处理流程。 -
步骤四:在批量处理的各条目中,过大的退款数值使序列化后的
MtBurnEvent超出了 NEAR 的日志总长度限制。mt_resolve_deposit回调发生 panic,这回滚了其所尝试的退款扣减操作,但没有撤销此前那一笔收据所提交的内部记入操作。Omni 返还了已转移的资产,而记入的余额仍保留在intents.near中可用。重复该操作序列即可创建出攻击者可提现的无支撑余额。
阶段二:从 BNB Chain 金库提取真实资产
- 步骤五:在 9 月 30 日 UTC 18:57 和 20:05,攻击者利用有效的 HOT MPC 授权,以提现 10 个
USDT和 11 个USDT的方式测试了 BNB Chain 金库。第一笔测试交易证实该金库接受了上游的授权。

- 步骤六:从 9 月 30 日 UTC 23:54 到 10 月 1 日 UTC 06:08,攻击者进行了 5 笔金额更大的提现,分别为 80 万
USDT、120 万USDT、150 万USDT、33 万USDT和 3.5 万USDT。这些交易合计从金库中释放了 386.5 万个USDT。
结论
NEAR Intents 因退款验证不正确以及存款结算失败后缺失回滚机制而被利用。攻击者利用超额的退款请求,在底层资产已被返还之后仍保留了内部信用余额,随后利用该无支撑余额发起了提现请求。Omni 创建了相应的提现记录,HOT MPC 对其进行了签名,BNB Chain 金库据此释放了真实的 USDT。
退款处理流程应以当前正在结算的存款金额为上限,对每种代币的退款额加以限制。该协议还应尽可能使余额记入与结算操作具备原子性,或在失败后应用有保证的补偿性回滚机制。在签发提现签名之前,应将内部余额总额与实际持有的全链资产进行核对,并在出现任何不匹配情况时暂停提现。事件生成逻辑也必须加以限制,以避免过大的日志导致关键状态结算路径中断。
参考资料
[1] https://www.bitget.com/academy/bitget-security-incident-what-happened-timeline-impact-response
[2] https://x.com/GracyBitget/status/2104515761691939026
[5] https://x.com/benbybit/status/2103328213141508335
[6] https://x.com/GracyBitget/status/2103812967066439817
[8] https://x.com/GracyBitget/status/2104602301503816040
[9] https://x.com/near_intents/status/2105642219357241796
[10] https://github.com/near/intents/pull/362
[11] https://x.com/Phalcon_xyz/status/2105680009687957909
关于 BlockSec
BlockSec 是一家全栈区块链安全与加密合规服务提供商。我们构建的产品和服务可帮助客户进行代码审计(包括智能合约、区块链和钱包)、实时拦截攻击、分析安全事件、追踪非法资金,并在协议与平台的整个生命周期中履行反洗钱/反恐融资(AML/CFT)义务。
BlockSec 已在多个知名会议上发表了多篇区块链安全论文,披露了多个 DeFi 应用的零日攻击,拦截了多次黑客攻击,挽回了超过 2000 万美元的资金,并保障了数十亿美元加密资产的安全。



