根本原因是在铸造份额代币时发生的精度计算问题,黑客利用这一问题获取额外的份额代币。
撰文:MetaTrust Labs
2023 年 11 月 11 日上午 02:59:23,MetaScout 探测到在以太坊上的稳定币协议 Raft 遭受了一次闪电贷攻击,结果导致 670 万枚稳定币 R 被铸造,协议损失了 360 万美元。根本原因是在铸造份额代币时发生的精度计算问题,黑客利用这一问题获取额外的份额代币。
MetaTrust Labs 对这次攻击进行了深入的研究和分析,揭示了黑客如何利用漏洞发起攻击。
Raft 是一个 DeFi 协议,通过存入流动性质押代币(LSDs)作为抵押,提供了一种资本高效的借贷方式,同时保留了质押奖励。

截至撰写本文时,其总锁定价值(TVL)在今天的攻击后下降了 46%,为 700 万美元。R 的价格下降了 99.6%,为 0.0036 美元。

交易:
攻击者:0xc1f2b71a502b551a65eee9c96318afdd5fd439fa
攻击合约:0x0a3340129816a86b62b7eafd61427f743c315ef8
受攻击合约:InterestRatePositionManager: 0x9ab6b21cdf116f611110b048987e58894786c244
通过闪电贷从 AAVE 借入 6000 枚 cbETH;
将总计 6001 枚 cbETH 转移到 InterestRatePositionManager 合约;
清算 InterestRatePositionManager 合约上预先创建的仓位:0x011992114806e2c3770df73fa0d19884215db85f;



重复第 5 步 60 次,以获得 60 wei 份额,即 10,050 cbETH;
通过只有 90 wei rcbETH-c 兑换 6003 cbETH;

在 Balancer 上将 210 万 R 兑换为 200 万 sDAI
在 Balancer 上将 120 万 R 兑换为 115 万 DAI
在 Uniswap 上将 20 万 R 兑换为 8.6 万 USDC


根本原因是在铸造份额代币时发生的精度计算问题,黑客利用这一问题获取额外的份额代币。由于 cbETH 的捐款放大了 index,导致黑客的份额价值更高,因此黑客仅仅用了一点 rcbETH-c 就兑换了 6003 枚 cbETH 并借入大量 R。

360 万美元。
1570 枚 ETH 由于黑客的误操作而被烧掉。

截至目前撰写本文时,攻击者的钱包中有 140 万 R 代币(价值 4.6 千美元)。

考虑在利率计算的情况下检查潜在的四舍五入问题,如在边缘情况下是否可以被恶意用户操纵,正如 Raft 攻击案例情形。
建议在发生紧急情况时采取监控系统并暂停协议的措施。或者,整合一个内存池阻塞系统将是有益的。这个系统可以在攻击者执行攻击时有效地检测内存池中的攻击交易,以进行预防性阻塞,避免损失。