导语:2026年9月21日至10月4日,区块链生态共发生8起安全事件,估计损失合计约4.184亿美元。其中,Bitget约3.875亿美元资产被转走,但私钥与冷钱包未泄露;NEAR Intents因退款校验错误和状态回滚缺失损失约387万美元。两起重点事件均显示,下游签名与执行若建立在错误的上游信息之上,仍可能造成真实资产流失。
本期概览
本期事件涉及 Ethereum、BNB Chain、Solana、Bitcoin、TRON、XRP Ledger、Zcash、Avalanche、NEAR 及相关网络。类型包括第三方安全产品漏洞、疑似证明系统 soundness flaw、区块与输入校验失败、网络配置核验不足、访问控制缺陷等。
Bitget:私钥未泄露,约3.875亿美元如何被转走
9月24日,约3.875亿美元从Bitget部分热钱包和温钱包基础设施转出,涉及 Ethereum 及其他 EVM 网络、XRP Ledger、Zcash 和 TRON。链上交易带有有效的钱包签名。Bitget 表示,攻击者利用第三方安全产品中的漏洞取得内网访问凭据,并伪造提现指令;私钥和冷钱包仍然安全。
两份独立调查报告进一步还原路径,但没有披露受影响安全产品名称。SlowMist 将 Product A 中最早的恶意活动追溯至8月31日,并确认其中一个节点上的服务受到 zero-day 影响。Mandiant 发现,攻击者取得两款安全设备的特权访问权限,在 Product B 上部署 web shell 并建立 C2 连接,随后横向移动至生产 wallet job server。SlowMist 还发现,攻击者使用内部员工身份访问 Product B 的管理平台。调查人员恢复了一款定制提现工具,该工具会伪造 risk-control 参数、构造提现请求并调用提现流程。
公链记录的是最终签名转账,而不是上游操作。链上记录显示,18:31 UTC,攻击者先收到93枚 TRX,11秒后又收到0.84枚 ETH。Bitget 最新时间线显示,对账系统于19:05 UTC发现显著差异,并在19:14 UTC启动最高级别应急响应。19:16 UTC,攻击者控制的 TRON 地址另收到20.59M枚 TRX;随后攻击者在另外8条网络上发起17笔大额转账,合计约3.61亿美元。Bitget 于19:40 UTC开始执行遏制措施,并在21:44 UTC关闭钱包提现和签名服务。
资金状态与生态响应
截至9月29日16:35:28 UTC,Bitget 官方持仓页面记录的攻击者当前持仓为3.2267亿美元,已冻结资金约632,700美元,仍可由发行方冻结的稳定币约312,500美元,另有5587万美元处于跨链途中或仍在分析。地址浏览器采用另一套分类口径,其中余额主要集中在 BTC(2.8851亿美元)、ZEC(2891万美元)和 ETH(717万美元)。
Binance 共享情报并协助资金追踪,Bybit 更新 LazarusBounty 并提供帮助。基础设施服务方选择不同做法。Bitget 要求 THORChain 拒绝向已公布的攻击者地址提供服务,并表示去中心化不应成为协助已知被盗资金流通的挡箭牌。THORChain 拒绝选择性拉黑,称其控制机制只能暂停更广范围的活动或某条链的路线,不能只针对一个地址或一笔交易。
NEAR Intents 表示,SHIELD 在去除重复尝试后识别并阻断了超过5000万美元与攻击者相关的尝试流量。约503,000美元在执行过程中被冻结,约166,000美元成功通过;其中5000万美元指尝试流量,并非冻结或追回金额。追踪页面后来将 NEAR Intents 处的293,507美元归类为已冻结资金,公开来源尚未解释两者差异。
经验与启示
攻击者通过第三方安全产品进入内部系统,触达 wallet job server,并将伪造提现请求转化为带有有效签名的链上交易。具备这类访问能力的第三方产品属于实际资产安全边界:机构应隔离部署此类产品,限制身份与权限,持续监控其行为,并在签名前独立验证提现意图。追回权限分散在交易所、稳定币发行方、路由服务和基础协议之间,任何单一参与方都无法独立完成处置。
NEAR Intents:退款校验错误与状态回滚缺失
9月30日至10月1日,intents.near 中的退款校验错误和状态回滚缺失产生了没有对应资产支持的内部余额,导致 NEAR Intents 损失约387万美元。攻击者利用该余额取得有效的 HOT MPC 提现签名,并从协议位于 BNB Chain 的 vault 中提取真实 USDT。
背景
NEAR Intents 是部署在 NEAR 上的意图执行系统。其核心合约 intents.near 持有 omni-assets、记录用户内部余额,并根据用户签署的 intent 处理资产交换和提现。在跨链充值过程中,源链上的 vault 锁定真实资产,Omni 在 NEAR 上创建对应的 omni-asset 并转入 intents.near,随后 intents.near 增加用户的内部余额。
提现时,intents.near 请求 Omni 销毁对应的 omni-asset 并创建提现记录。HOT MPC 验证该记录并生成签名,目标链上的 vault 验证签名后释放真实资产。因此,intents.near 记录的内部余额必须始终由合约实际持有的 omni-assets 提供支持。
漏洞分析
充值路径会在跨合约转账完全完成解析之前,先增加接收方的内部余额。在解析过程中,resolve_deposit_internal() 使用接收方持有该代币的总余额限制 receiver 可控的 requested_refund,却没有使用 deposited 限制退款;deposited 表示本次正在解析的充值实际转入了多少,也是本次操作允许退款的最大范围。总余额只能说明账户付得起多少,不能说明其中有多少属于本次充值。缺少 deposited 这一上限后,拥有大量历史余额的接收方就能请求远高于本次充值金额的退款。
对于包含多个长 token_id 的批量充值,错误的退款数值会扩大序列化后的 MtBurnEvent。当该事件超过 NEAR 的日志总长度限制时,check_refund().unwrap_or_panic_display().emit() 路径会 panic,导致 mt_resolve_deposit receipt 失败。
内部余额已在更早的 receipt 中记入。此次 panic 会回滚 callback receipt 尝试执行的余额与总供应量扣减,却不会撤销此前已经提交的内部余额。Omni 随后把已转移资产返还给发送方,攻击者因此保留了可提现的内部余额,而 intents.near 不再持有匹配的 omni-assets。该漏洞由退款校验错误和异步 receipt 序列中的状态回滚缺失共同造成。
攻击分析
阶段一:在 NEAR 上制造没有资产支持的内部余额。攻击者先通过 BNB Chain 上的 Omni/HOT vault 充值10枚 USDT,使恶意接收方账户在 NEAR 上拥有非零 omni-asset 余额;随后调用 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 callback 发生 panic,回滚了本次 callback 尝试执行的退款扣减,但没有撤销更早 receipt 已经提交的内部余额。Omni 退回已转移资产,而 intents.near 中的余额仍然可用。攻击者重复这一过程,获得了可提现但没有资产支持的余额。
阶段二:从 BNB Chain vault 提取真实资产。9月30日18:57和20:05 UTC,攻击者使用有效的 HOT MPC 授权,先后从 BNB Chain vault 测试提现10枚和11枚 USDT。第一笔测试交易确认该 vault 会接受上游授权。
从9月30日23:54 UTC至10月1日06:08 UTC,攻击者发起5笔大额提现,金额分别为800,000枚、1.2M枚、1.5M枚、330,000枚和35,000枚 USDT,合计从 vault 转出3.865M枚 USDT。
结论
NEAR Intents 事件的根本原因是退款校验错误和充值解析失败后的状态回滚缺失。攻击者通过超额退款请求,让底层资产退回后内部余额仍然保留,并利用这笔没有资产支持的余额发起提现。Omni 据此创建提现记录,HOT MPC 对记录签名,BNB Chain 上的 vault 验证签名后释放真实 USDT。
退款处理应针对每种代币,将退款金额限制在当前正在解析的充值金额以内。协议还应尽可能让余额增加与解析原子化;无法原子化时,必须在失败后执行可靠的补偿回滚。发出提现签名前,系统应核对内部余额总量与实际 omni-asset 持仓,发现不一致时立即暂停提现。事件生成也必须设置边界,避免过大的日志使关键状态解析路径中止。
行业启示:无论是交易所提现系统还是跨链意图协议,资产安全都不应只依赖最终签名有效。签名前独立校验、余额与底层资产对账、第三方安全产品隔离、以及跨机构情报共享,正在成为加密资产安全的关键防线。
