
上線就被秒,Radiant Protocol 被黑客攻擊損失 450 萬美元
TechFlow Selected深潮精選

上線就被秒,Radiant Protocol 被黑客攻擊損失 450 萬美元
原因是在新的 USDC 市場上,放大和利用了「burn」函數中的數學舍入問題,使得黑客可以提取額外的 USDC。
撰文:Daniel Tan
北京時間 2024 年 1 月 3 日,Arbitrum 上的 Radiant 協議受到閃貸攻擊。黑客對 #Radiant 協議進行了 3 次攻擊,總共損失了 1902 枚 ETH(價值 450 萬美元)。根本原因是在新的 $USDC 市場上,放大和利用了「burn」函數中的數學舍入問題,使得黑客可以提取額外的 $USDC。
MetaTrust Labs 對這次攻擊進行了深入的研究和分析,揭示了黑客如何利用漏洞發起攻擊。
借貸協議 Radiant Protocol
Radiant 是一種去中心化、非託管借貸協議,在多個鏈上運行,包括 Arbitrum、BNBChain 和以太坊。

攻擊發生後,Radiant 協議鎖定的總價值仍然有 3.13 億美元,這是因為項目方被攻擊後迅速暫停了協議,阻止了進一步的損失。

時間線

交易
0xc5c4bbddec70edb58efba60c1f27bce6515a45ffcab4236026a5eeb3e877fc6d
0x2af556386c023f7ebe7c662fd5d1c6cc5ed7fba4723cbd75e00faaa98cd14243
0x1ce7e9a9e3b6dd3293c9067221ac3260858ce119ecb7ca860eac28b2474c7c9b
資產損失
3 筆攻擊交易導致總計損失超 1902 枚 ETH,價值超 450 萬美元。截稿時,1902 枚 $ETH 仍然保存在黑客的錢包中(0x826d5f4d8084980366f975e10db6c4cf1f9dde6d)。
攻擊者
0x826d5f4d8084980366f975e10db6c4cf1f9dde6d
攻擊合約
0x39519c027b503f40867548fb0c890b11728faa8f
受攻擊合約
Radiant: Lending Pool:
0xf4b1486dd74d07706052a33d31d7c0aafd0659e1
rUSDCn:
0x3a2d44e354f2d88ef6da7a5a4646fd70182a7f55
攻擊之前發生了什麼
攻擊前 15 秒,項目方剛在 Arbitrum 上創建了一個新的 USDC 市場,黑客是第一個與新的 USDC 市場互動的人。

攻擊步驟
以第一筆攻擊交易 0x1ce7e9a9e3b6dd3293c9067221ac3260858ce119ecb7ca860eac28b2474c7c9b 為例。
1. 通過閃貸功能從 AAVE 借入 300 萬美元 USDC;
2. 存入 2M $USDC 至 Radiant Pool,此時 liquidityIndex 為 1e27

3. 在 Radiant Lending Pool 上進行 200 萬美元的閃貸,將 liquidityIndex 放大到 1.8e36。
4. 重複執行步驟 3,151 次,將 liauidityIndex 放大至 2.7e38,即初始值的 270000000000 倍。

5. 從 Radiant Pool 借入 90.6 $ETH,價值 $215K,這就是這次攻擊的利潤;
6. 創建新合約(0xd8b591);
7. 批准對新合約無限額度的 USDC,將 543K $USDC 轉入新合約,並使用新合約執行以下步驟;將 543K $USDC 轉入新合約,並使用新合約執行以下步驟;
8. 充值 543K $USDC 到 Radiant 池中,鑄造 2 wei 的代幣,因為 amountScaled 為 2 的代幣,543600000002*1e27/271800000000999999999999998631966035920=2;


9. 從 Radiant 池中提取 407K $USDC,僅燃燒 1 wei 的代幣,因為 amountScaled 為 1,407700000000*1e27/271800000000999999999999998631966035920=1.5 以及數學舍入問題。請注意,amountScaled 是一個 uint256 類型變量,它將把 1.5 轉換為 1。


10. 存入 271K $USDC 到 Radiant 池中,鑄造 amountScaled 為 1 的代幣,因為 271800000001*1e27/271800000000999999999999998631966035920=1
11. 從 Radiant 池中提取 407K $USDC,僅銷燬 amountScaled 為 1 的代幣。
12. 重複步驟 10 和 11 最多 18 次,並從新市場中耗盡黑客之前存入新市場的 $USDC。
13. 將 2 $WETH 兌換為 4.73K $USDC,將 3.23K $USDC 兌換為 1.36 $WETH。
14. 以 350 萬美元 USDC 作為本金和 1.5 萬美元 USDC 作為費用,償還 AAVE 的閃貸。
15. 獲得 90 美元 ETH 的利潤。
根本原因
根本原因在於,黑客是第一個與 新創建的原生 USDC 市場進行交互的人,利用 Radiant 協議的閃電貸功能放大 liquidityIndex,並利用數學舍入問題竊取借貸池中的資產。
關鍵代碼


歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News










