返回博客

当“安全转账”不再安全:QBridge 安全事件的启示

Code Auditing
2022年1月28日
阅读约 2 分钟

1月28日,QBridge 遭到攻击,约8000万美元的资产被盗。经过分析,我们发现代码中的根本原因是 safeTransfer(以及 safeTransferFrom)函数的实现方式。

根本原因

首先,该项目没有使用主流的 OpenZeppelin SafeERC20 库来进行代币转账。相反,他们自己实现了一个名为 SafeToken 的库。

其次,该实现没有检查目标地址是否为有效合约(或是否为零地址)。

第三,EVM 的底层调用在目标合约为零地址时不会返回 false。 这与开发者的常识相违背。

当然,此次事件还涉及其他原因,例如将零地址加入白名单。然而,如果代码能够正确处理这种特殊情况,它就不会存在漏洞。

顺便提一下:还有其他项目使用了类似的代码。它们可能也容易受到类似的问题影响。

实验

为了证实第三个原因——即当目标合约为零地址时 VM 不会返回 false,我们开发了一个测试合约,如下所示:

执行 TestSafeTransfer.test() 并不会回滚(revert)。

教训与风险缓解措施

我们建议:

  • 除非有非常充分的理由,否则请使用现成的主流库,而不要重复造轮子。
  • 在资产转账前后检查余额,以确保转账的资产数量符合预期。这也能够避免通缩和通胀代币带来的问题。

关于 BlockSec

BlockSec 是一家由多位世界顶尖安全专家于2021年创立的先驱区块链安全公司。公司致力于提升新兴 Web3 世界的安全性和易用性,以促进其大规模应用。为此,BlockSec 提供智能合约和 EVM 链安全审计服务、用于安全开发和主动阻断威胁的 Phalcon 平台、用于资金追踪与调查的 MetaSleuth 平台,以及帮助 Web3 构建者高效探索加密世界的 MetaDock 插件。

迄今为止,公司已服务过 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap 等超过 300 家知名客户,并获得了包括经纬创投(Matrix Partners)、毅峰资本(Vitalbridge Capital)和分布式资本(Fenbushi Capital)在内的顶级投资机构两轮数千万美元的融资。

官方网站:https://blocksec.com/

官方推特账号:https://twitter.com/BlockSecTeam

订阅最新动态
Web3攻击面:渗透测试概览

Web3攻击面:渗透测试概览

加密机构承载所有传统攻击面,并叠加资金处理链。本文提供系统的实用抽象:应用、授权与签名、区块链交互、基础设施四组件模型,说明各自职责、代表实现及继承的攻击面,并将web3特有覆盖细分为五大攻击面:生产与自动化运维、签名意图、审批与提现链、资金逻辑及链上交易与已部署合约。

损失约2300万美元:Cosmos EVM与Moonwell遭利用攻击 | BlockSec Weekly
Security Insights

损失约2300万美元:Cosmos EVM与Moonwell遭利用攻击 | BlockSec Weekly

在报告期(2026/08/22-2026/08/30)内,我们统计5起区块链安全事件,损失约2270万美元;Tectonic被盗约7400万-1.195亿美元,因Cronos回滚至攻击前状态而多数被抹除。重点是六链Cosmos EVM漏洞系列(实现约570万美元),经TAC Chain溯源,共享余额同步漏洞串联下溢与上溢耗尽质押池。报告还分析了Moonwell的抵押品核算与预言机价格操纵组合攻击、Tectonic的预言机价格与凭证代币汇率操纵低流动性抵押品、Ajna清算业务逻辑缺陷,以及Solana上的Rain Card Contract Exploit Series(Ed25519签名验证绕过,涉及Avici、Tria等)。

什么是区块链渗透测试?定义与边界
Security Services

什么是区块链渗透测试?定义与边界

区块链渗透测试尚无公认定义,常与审计、扫描、赏金测试混淆。本文提出工作定义:在约定范围与规则下,对运行系统进行对抗性实测,验证可利用路径与控制链;并指出web3新增的资金处理威胁模型,其关键组合缺口在链下到链上的交接。随后梳理该链条的五项可测能力,并将相关目标分流至代码审计、钱包安全审计、web3安全测试、扫描与赏金测试。

Web3 最佳安全审计方

在上线之前验证设计、代码与业务逻辑,对标业内最高安全标准。

BlockSec 审计