撰文:Daniel Tan
北京时间 2024 年 1 月 3 日,A小白导航rbitrum 上的 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,并利用数学舍入问题窃取借贷池中的资产。
关键代码
文章来源于互联网:上线就被秒,Radiant Protocol 被黑客攻击损失 450 万美元
这次史诗级空投不仅仅是一次奖励,更是火币HTX对用户长期以来信任与支持的真挚感谢。 近日,火币HTX宣布即将启动一场史诗级空投,为广大用户呈现一场前所未有的财富盛宴。这一消息迅速传遍中文币圈,激发了用户们对于即将到来的史诗级空投的期待和兴奋。作为一个热衷于区块…