由于Alpha Finance的问题,导致了两个协议同时遭受了损失。
据慢雾区消息,2021 年 2 月 13 日,以太坊 DeFi Alpha Finance 遭受攻击,慢雾安全团队第一时间跟进分析,并以简讯的形式分享给大家,供大家研究。
- 攻击者用一部分的 WETH 在 Uniswap WETH-UNI 池子上添加流动性,再把一部分的 WETH 兑换成 sUSD 并在 Cream 中添加流动性获得 cySUSD 凭证。
- 攻击者通过 Alpha Homora V2 从 IronBank 借出 sUSD,并将 LP 抵押到 WERC20 中为后面开杠杆做准备。
- 攻击者再通过 Alpha Homora V2 将上一步借出的sUSD 归还给 IronBank。
- 上面几步似乎只是试探。
- 随后攻击者开始利用 Alpha Homora V2 的杠杆借贷从 IronBank 中循环借出 sUSD,每次借出数量都是上一次的一倍,最后将借出的 sUSD 再转到 Cream 中添加流动性获得 cySUSD 凭证。
- 之后攻击者不满足于这种低效的杠杆循环借贷叠 cySUSD 的方式,开始使用闪电贷加快速度。
- 攻击者开始从 AAVE 中闪电贷借出 180 万 USDC,并通过 Curve 将 USDC 兑换成 sUSD,这时候攻击者就拿到了大量的 sUSD 了。
- 随后攻击者先用 sUSD 到 Cream 中添加流动性,并获得 cySUSD 凭证,再开始继续使用 Alpha Homora V2 的杠杆借贷从 IronBank 中循环翻倍的借出 sUSD,最后利用借出的 sUSD 去归还闪电贷。(偿还的闪电贷中有包含先前几步的一部分 sUSD 作为利息,因为最后一步借出的不足以还贷,但都是拿从 Alpha 借的去还的)
- 重复上一步,闪电贷借出 1000 万 USDC,换成 sUSD,先添加在 Cream 中,添加 9,668,335 的流动性拿到 cySUSD,再继续杠杆借贷,最后翻倍到 10,088,930 应该基本把池子借空了。然后开始重复添加流动性,获取 cySUSD。最后再去归还闪电贷。
- 再闪电贷借出 1000万,再重复添加流动性与借贷,获取 cySUSD 并归还闪电贷。
- 由于经过以上步骤攻击者已获得大量 cySUSD,因此攻击者开始直接在 Cream 借出 WETH、USDC、USDT、DAI、sUSD。
总结:攻击者使用闪电贷到 Alpha Finance 中进行杠杆借贷,并使用 Alpha Finance 本身的 Cream IronBank 额度来归还闪电贷,在这个过程中攻击者通过在 Cream 添加流动性获得了大量的 cySUSD,使攻击者得以用这些 cySUSD 在 Cream Finance 中进行进一步的借贷。由于 Alpha Finance 的问题,导致了两个协议同时遭受了损失。
本文首发于:https://mp.weixin.qq.com/s/amTcgpTNh4cAS5LKGMN0gA