返回部落格

Tether Gold 智慧合約的公開轉移漏洞

Code Auditing
2023年5月27日
閱讀約 3 分鐘

我們的內部分析工具於 4 月 5 日在 Tether Gold 合約中發現了一個漏洞,該漏洞允許攻擊者將任何人的 XAUt (Tether Gold) 代幣轉移到預定義的地址。團隊收到我們的報告後表示,他們已在內部定位到此問題。今天我們發現該問題已修復,因此希望在此分享詳細資訊。此外,我們將說明如何使用 Phalcon Fork 來開發和調試此漏洞的 PoC。

0x0. 漏洞說明

在該合約的 transferFrom 函數中,任何人都可以調用此函數,將其他用戶的代幣轉移到代幣所有者定義的受信任接收地址。雖然此漏洞無法直接被利用來將代幣轉移到攻擊者的帳戶,但攻擊者仍能轉移池中的代幣,進而操縱池中(例如 WETH-XAUt 池)的代幣價格以獲取利潤。

此漏洞的修復方式很簡單,如下所示。

0x1. 如何利用該漏洞

為了編寫和調試 PoC,我們可以使用 Phalcon Fork 來達成目的。首先,我們可以在漏洞修復之前創建一個 Fork。在透過 Fork API 創建 Fork 時,我使用了區塊高度 17038763。

第一步:準備足夠的以太幣 (Ether)

第一步是為攻擊者準備足夠的以太幣以支付 Gas 費用。如果帳戶中沒有以太幣,則會發送一筆從 vitalik.eth 轉帳以太幣的交易。

第二步:轉移 Tether Gold 合約的所有權

Tether Gold 合約的所有者是一個多簽錢包 (0xC6CDE7C39eB2f0F0095F41570af89eFC2C1Ea828)。為了將所有權轉移給攻擊者,我們需要提交一筆多簽交易,然後確認該交易。

第三步:在 Tether Gold 合約中添加特權帳戶

我們添加了一個新帳戶 0x189e7947a9d9210eec3a41dcf5f536bb1d7726f5 作為特權帳戶。隨後,我們調用 transferFrom 函數,將受害者的 XAUt 代幣轉移到該特權帳戶。

0x2. PoC

請在以下 GitHub 鏈接中查看 PoC:

訂閱最新動態
Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇
Security Insights

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇

2026年9月24日,攻擊者利用第三方安全產品漏洞,獲取內部憑證並偽造提款指令,導致約3.875億美元從Bitget部分營運錢包(涵蓋Ethereum、其他EVM網絡、XRP Ledger、Zcash及TRON)轉出;私鑰及冷錢包未受影響。本文深入梳理事件路徑與資金流向,分析快速轉換為原生資產及生態恢復應對,提出機構縱深防禦框架,並說明授權區塊鏈滲透測試如何驗證跨層假設。

約1130萬美元損失:Multicall Router、Nostra|BlockSec Weekly
Security Insights

約1130萬美元損失:Multicall Router、Nostra|BlockSec Weekly

本報告涵蓋2026/09/14至2026/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至2026/09/13,探討兩起造成約3.2億美元損失的安全事件,包括前份報告未提及、發生於2026/09/06的Liquid Network漏洞事件。較大者為該Liquid Network漏洞:Elements中的rangeproof驗證快取藉由雜湊四個欄位(其中兩個長度可變)串接而成金鑰,且未標示欄位邊界,導致某輸出的驗證結果被錯誤套用至另一個未經檢驗證明的輸出,使攻擊者得以憑空創造4,000枚無擔保L-BTC,並將幾乎全數兌回比特幣。在橫跨BNB Smart Chain、Ethereum與Rootstock的Symbiosis跨鏈橋比特幣路徑中,讀取比特幣存款的鏈下程式碼從存款人可自行控制的欄位取得其身份,並在未檢查手續費是否為負值的情況下自存款中扣除,使330聰的存款鑄造出`46,116,860,184.27388234 syBTC`;其須賣出所經之資金池僅有11.26 syBTC,致使流動性提供者與用戶損失約9.97 BTC(約77萬美元)。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

BlockSec 審計
Tether Gold 智慧合約的公開轉移漏洞