返回博客

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

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:

订阅最新动态
Bitget 3.875亿美元链下漏洞事件:不止于密钥与合约
Security Insights

Bitget 3.875亿美元链下漏洞事件:不止于密钥与合约

2026年9月24日,攻击者利用第三方安全产品漏洞,获取内部凭证并伪造提现指令,导致Bitget部分运营钱包资金转出约3.875亿美元,涉及以太坊、其他EVM网络、XRP Ledger、Zcash和TRON,私钥及冷钱包未受影响。本文梳理事件路径与资金流向,分析资产快速转换及生态恢复应对,提出机构纵深防御体系,并说明授权区块链渗透测试如何验证跨层安全假设。

损失约1130万美元:Multicall Router、Nostra | BlockSec Weekly
Security Insights

损失约1130万美元:Multicall Router、Nostra | BlockSec Weekly

本报告覆盖2026/09/14至09/20,分析以太坊与Starknet上两起共约1130万美元损失的安全事件。较大一起中,多重调用路由器将自身地址当作调度目标,致嵌套调用以路由器已授权身份而非外部调用者身份进入Safe钱包的Gateway模块,约2900个aEthrsETH被转入攻击者创建的Uniswap v4池。Starknet上,Nostra预言机仅需一个聚合来源,三个价格源中仅两个参与聚合时,被操纵的浅池报价与正常报价平均,使NSTR估值约49.52美元,支持约350万美元超额抵押借贷。

~3.2亿美元损失:Liquid Network、Symbiosis 遭利用攻击 | BlockSec
Security Insights

~3.2亿美元损失:Liquid Network、Symbiosis 遭利用攻击 | BlockSec

本报告覆盖2026/09/07-09/13,分析两起共损失约3.2亿美元的安全事件,含此前未覆盖的Liquid Network于09/06遭利用事件。较大事件中,Elements的rangeproof验证缓存因字段拼接无分隔符导致验证结果错配,攻击者伪造4000枚无支撑L-BTC并几乎全部兑出。Symbiosis跨链桥比特币路线因手续费未做负值校验,330聪存款铸造出46,116,860,184.27388234 syBTC,流动性池仅存11.26 syBTC,致约970万美元损失(约9.97 BTC)。

Web3 最佳安全审计方

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

BlockSec 审计