摘要
2023 年 11 月 11 日早上 02: 59: 23 ,UTC 8: 00 ,MetaScout 探测到在 Ethereum 上述稳定货币协议 Raft 遭受闪电贷攻击。结果导致闪电贷攻击。 6.7 数百万枚稳定币$R 被锻造,协议丢失 360 万美元。根本原因是锻造股份代币时的精度计算问题,黑客利用这个问题获得额外的股份代币。
MetaTrust Labs 对攻击进行了深入的研究和分析,揭示了黑客如何利用漏洞进行攻击。
稳定币协议 Raft
Raft是一个 DeFi 协议通过存入流通性质押代币(LSDs)抵押贷款,提供了一种高效的资本借贷方式,同时保留了质押奖励。
截至本文编写时,其总锁定价值(TVL)在今天的攻击后下降 46% ,为 700 万美金。$R 价格下降了 99.6% ,为 0.0036 美金。
交易
https://etherscan.io/tx/0xfedbf71b4e238e3817197年19747ab7777ab77
攻击者
0xc1f2b502b51a65ee9618afd
攻击合同
00a34016a86b7
攻击合同
InterestRatePositionManager: 11661000x9b21cdf11008878887c2484
攻击步骤
1. 通过闪电贷从 AAVE 借入 6000 枚$cbETH;
2. 将总计 6001 枚$cbETH 转移至 InterestRatePositionManager 合同;
3. 结算 InterestRatePositionManager 0x0119211806e2c370df7a0d19845db85f事先建立的仓位;
4. 将 raft 抵押代币的检索设置为 6, 003, 441, 032, 036, 096, 684, 181 ,即 InterestRatePositionManager 合约的$cbETH 余额,因为步骤 2 捐款被放大了 1000 倍;
5. 通过使用 divUp 函数计算股份时,仅通过函数计算股份时, 1 wei 的$cbETH 就锻造 1 wei 份额。请注意,当分子不是零的时候,不管分母有多大,divUp 函数的最小返回值为 1:
6. 重复第 5 步 60 次,以获得 60 wei 份额,即 10, 050 $cbETH;
7. 通过只有 90 wei $rcbETH-c 换取 6003 $cbETH;
8. 借入 6.7 百万$R,也就是说,利润,最终在不同的地方 Dapps 中间交换为价值 360 万美元的 1575 枚$ETH,其中包括:
在 Balancer 上把 210 万$R 换取为 200 万$sDAI
在 Balancer 上把 120 万$R 换取为 115 万$DAI
在 Uniswap 上把 20 万$R 换取为 8.6 万$USDC
9. 令人惊讶的是,黑客将 1570 枚$ETH 烧到黑洞地址,这意味着黑客一分利润都得不到。
根本原因
根本原因是锻造股份代币时的精度计算,黑客利用这个问题获得额外的股份代币。因为$cbETH 捐款被放大了 index,黑客的份额价值更高,所以黑客只用了一点点$rcbETH-c 就兑换了 6003 枚$cbETH 并借入大量$R。
关键代码
资产损失
360 万美金。
资金流入
1570 $ETH 由于黑客的误操作而被烧毁。
到目前为止,在编写这篇文章时,攻击者的钱包含了 140 万$R 代币(价值 4.6 千美元)。
安全建议
选择在利率计算的情况下检查隐藏的四舍五入问题,如在边缘前提下是否可以被恶意客户操纵,就像恶意客户一样。 Raft 攻击案例。
建议在紧急情况下使用监控系统并暂停协议。或者,集成一个内存池堵塞系统是有益的。该系统可以有效地检查内存池中的攻击交易,以防止堵塞,避免损失。
关于 MetaTrust Labs
MetaTrust Labs 是新加坡南洋理工大学孵化的领先Web3人工智能安全工具代码审计服务供应商。我们提供先进的 AI 解决方案赋予开发者和项目相关者保护Web3应用程序和智能合约的能力。包括我们的综合服务 AI 安全扫描、代码审计、智能合同监控和交易监控。通过整合 AI,我们确保建立一个安全的生态系统,增强用户和开发者之间的信任。
Website: https://metatrust.io/
Twitter: https://twitter.com/MetatrustLabs