返回博客

泰达金智能合约的公开转账漏洞

Code Auditing
2023年5月27日
阅读约 2 分钟

我们内部分析工具于 4 月 5 日在 Tether Gold 合约 中发现了一个漏洞,该漏洞允许攻击者将任何人的 XAUt(Tether Gold)代币转移到预定义地址。该团队收到了我们的报告,并表示他们已在内部定位到此问题。今天我们发现该问题已被修复,并想在此分享详细信息。此外,我们将说明如何使用 Phalcon Fork 开发和调试此漏洞的 PoC。

0x0. 漏洞

合约transferFrom 函数中,任何人都可以调用此函数将其他用户的代币转移到由代币所有者定义的受信任的接收地址。虽然此漏洞不能直接用于将代币转移到攻击者账户,但攻击者仍然可以将池中的代币转移,以操纵池(例如 WETH-XAUt 池)中的代币价格来获利。

此漏洞的修复非常简单,如下所示。

0x1. 如何利用漏洞

要编写和调试 PoC,我们可以为此目的使用 Phalcon Fork。首先,我们可以在漏洞修补之前创建一个 Fork。我在通过 Fork API 创建 Fork 时使用了块高 17038763。

步骤 I:准备足够的 Ether

第一步是为攻击者准备足够的 Ether 用于支付 gas 费。如果账户中没有 Ether,将发出从 vitalik.eth 发送 Ether 的交易。

步骤 II:转移 Tether Gold 合约的所有权

Tether Gold 合约的所有者是一个多签钱包(0xC6CDE7C39eB2f0F0095F41570af89eFC2C1Ea828)。要将所有权转移给攻击者,我们需要提交一个多签交易,然后确认该交易。

步骤 III:向 Tether Gold 合约添加一个特权账户

我们添加了一个新账户 0x189e7947a9d9210eec3a41dcf5f536bb1d7726f5 作为特权账户。然后,我们调用 transferFrom 函数,将 XAUt 代币从受害者转移到特权账户。

0x2. PoC

请在此 GitHub 上找到 PoC:

订阅最新动态
约940万美元损失:Injective、Aquifer遭利用攻击 | BlockSec Weekly
Security Insights

约940万美元损失:Injective、Aquifer遭利用攻击 | BlockSec Weekly

过去一周(2026/08/31-2026/09/06),Injective、Solana、Ethereum和Flow EVM上发生四起安全事件,损失约940万美元。最大的是Injective漏洞,保险基金标识符与二元期权市场标识符冲突,结算路径未比较其面额,损失约480万美元;Solana上的Aquifer因交换路径调用未验证的调用者提供的Token Program,损失约247万美元;Ethereum上的Notional Finance V1因未检查的uint128转换将债务估值为零,损失约173万美元。Flow EVM上的Ankr FLOW因质押入口跳过暂停保护并按过时比率铸币,损失约41万美元。

超越智能合约:Web3中的域名与DNS运营安全
Security Insights

超越智能合约:Web3中的域名与DNS运营安全

合约审计只审合约本身。我们对DefiLlama TVL前100协议背后的100个域名进行了8项基于SEAL的DNS和注册商检查,共800项检查,只有一个域名全部通过。以下是大多数项目缺失的四项关键控制措施,以及它们在用户入口处为何至关重要。

Web3攻击面:渗透测试概览

Web3攻击面:渗透测试概览

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

Web3 最佳安全审计方

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

BlockSec 审计