上线就被秒,Radiant Protocol被黑客攻击损失450万美元

北京时间 2024 年 1 月 3 日,Arbitrum 上的 Radiant 协议受到闪贷攻击。黑客对 #Radiant 协议进行了 3 次攻击,总共损失了 1902 枚 ETH(价值 450 万美元)。根本原因是在新的 $USDC 市场上,放大和利用了「burn」函数中的数学舍入问题,使得黑客可以提取额外的 $USDC。

北京时间 2024 年 1 月 3 日,Arbitrum 上的 Radiant 协议受到闪贷攻击。黑客对 #Radiant 协议进行了 3 次攻击,总共损失了 1902 枚 ETH(价值 450 万美元)。根本原因是在新的 $USDC 市场上,放大和利用了「burn」函数中的数学舍入问题,使得黑客可以提取额外的 $USDC。

MetaTrust Labs 对这次攻击进行了深入的研究和分析,揭示了黑客如何利用漏洞发起攻击。

借贷协议 Radiant Protocol

Radiant 是一种去中心化、非托管借贷协议,在多个链上运行,包括 Arbitrum、BNBChain 和以太坊。

上线就被秒,Radiant Protocol被黑客攻击损失450万美元

攻击发生后,Radiant 协议锁定的总价值仍然有 3.13 亿美元,这是因为项目方被攻击后迅速暂停了协议,阻止了进一步的损失。

上线就被秒,Radiant Protocol被黑客攻击损失450万美元

时间线

上线就被秒,Radiant Protocol被黑客攻击损失450万美元

交易

0xc5c4bbddec70edb58efba60c1f27bce6515a45ffcab4236026a5eeb3e877fc6d

0x2af556386c023f7ebe7c662fd5d1c6cc5ed7fba4723cbd75e00faaa98cd14243

0x1ce7e9a9e3b6dd3293c9067221ac3260858ce119ecb7ca860eac28b2474c7c9b

资产损失

3 笔攻击交易导致总计损失超 1902 枚 ETH,价值超 450 万美元。截稿时,1902 枚 $ETH 仍然保存在黑客的钱包中(0x826d5f4d8084980366f975e10db6c4cf1f9dde6d)。

攻击者

0x826d5f4d8084980366f975e10db6c4cf1f9dde6d

攻击合约

0x39519c027b503f40867548fb0c890b11728faa8f

受攻击合约

Radiant: Lending Pool: 

0xf4b1486dd74d07706052a33d31d7c0aafd0659e1

rUSDCn: 

0x3a2d44e354f2d88ef6da7a5a4646fd70182a7f55

攻击之前发生了什么

攻击前 15 秒,项目方刚在 Arbitrum 上创建了一个新的 USDC 市场,黑客是第一个与新的 USDC 市场互动的人。

上线就被秒,Radiant Protocol被黑客攻击损失450万美元

攻击步骤

以第一笔攻击交易 0x1ce7e9a9e3b6dd3293c9067221ac3260858ce119ecb7ca860eac28b2474c7c9b 为例。

1. 通过闪贷功能从 AAVE 借入 300 万美元 USDC;

2. 存入 2M $USDC 至 Radiant Pool,此时 liquidityIndex 为 1e27

上线就被秒,Radiant Protocol被黑客攻击损失450万美元

3. 在 Radiant Lending Pool 上进行 200 万美元的闪贷,将 liquidityIndex 放大到 1.8e36。

4. 重复执行步骤 3,151 次,将 liauidityIndex 放大至 2.7e38,即初始值的 270000000000 倍。

上线就被秒,Radiant Protocol被黑客攻击损失450万美元

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;

上线就被秒,Radiant Protocol被黑客攻击损失450万美元
上线就被秒,Radiant Protocol被黑客攻击损失450万美元

9. 从 Radiant 池中提取 407K $USDC,仅燃烧 1 wei 的代币,因为 amountScaled 为 1,407700000000*1e27/271800000000999999999999998631966035920=1.5 以及数学舍入问题。请注意,amountScaled 是一个 uint256 类型变量,它将把 1.5 转换为 1。

上线就被秒,Radiant Protocol被黑客攻击损失450万美元
上线就被秒,Radiant Protocol被黑客攻击损失450万美元

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,并利用数学舍入问题窃取借贷池中的资产。

关键代码

上线就被秒,Radiant Protocol被黑客攻击损失450万美元
上线就被秒,Radiant Protocol被黑客攻击损失450万美元

(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)

(0)
上一篇 2024年1月4日 上午11:50
下一篇 2024年1月4日 下午12:18

相关推荐

发表回复

登录后才能评论
微信

联系我们
邮箱:whylweb3@163.com
微信:gaoshuang613