Popsicle Finance闪电贷攻击事件分析

创宇区块链安全实验室
创宇区块链安全实验室 机构得得号

Aug 05, 2021 专注构建区块链安全生态,致力于让人类进入安全的区块链世界。

摘要: 8 月 4 日,以太坊上的 DeFi 协议 Popsicle Finance 遭遇闪电贷袭击,目前只有 Sorbetto Fragola 受到影响。

前言

北京时间 8 月 4 日上午,知道创宇区块链安全实验室监测到以太坊上的 DeFi 协议 Popsicle Finance 遭遇闪电贷袭击,目前只有 Sorbetto Fragola 受到影响。实验室第一时间跟踪本次事件并分析。

分析

攻击者信息
攻击 tx:
0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc
攻击合约:
0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6
辅助攻击合约 1:
0x576Cf5f8BA98E1643A2c93103881D8356C3550cF
辅助攻击合约 2:
0xd282f740Bb0FF5d9e0A861dF024fcBd3c0bD0dc8

被攻击池信息:
PLP(USDT/WETH):
0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48
PLP(USDC/WETH):
0xd63b340F6e9CCcF0c997c83C8d036fa53B113546
PLP(WBTC/WETH):
0x0A8143EF65b0CE4C2fAD195165ef13772ff6Cca0
PLP(USDT/WETH):
0x98d149e227C75D38F623A9aa9F030fB222B3FAa3
PLP(WBTC/USDC):
0xB53Dc33Bb39efE6E9dB36d7eF290d6679fAcbEC7
PLP(USDC/WETH):
0x6f3F35a268B3af45331471EABF3F9881b601F5aA
PLP(DAI/WETH):
0xDD90112eAF865E4E0030000803ebBb4d84F14617
PLP(UNI/WETH):
0xE22EACaC57A1ADFa38dCA1100EF17654E91EFd35

攻击流程:
PLP 池合约方面调用流程

  1. 攻击合约 0xdFb6 调用 PLP 池合约的 deposit() 函数进行质押
  2. 将质押获得的 shares 转移给辅助攻击合约 0x576C
  3. 通过辅助攻击合约 0x576C 调用 PLP 池合约的 collectFees() 函数
  4. 辅助攻击合约 0x576C 将步骤 2 获得的所有 shares 再次转移给下一个辅助攻击合约 0xd282
  5. 同步骤 3,辅助攻击合约 0xd282 调用 PLP 池合约的 collectFees() 函数
  6. 辅助攻击合约 0xd282 将步骤 4 获得的所有 shares 转移回攻击合约 0xdFb6
  7. 攻击合约 0xdFb6 调用 PLP 池合约的 withdraw() 函数进行赎回,完成攻击
  8. 辅助攻击合约 0x576C 和 0xd282 调用 PLP 池合约的 collectFees() 函数提取手续费奖励

细节

攻击者通过 AAVE 闪电贷借来 USDT、ETH、WBTC、USDC、DAI、UNI 六种资产依次对 Popsicle Finance 的 Sorbetto Fragola 系列的 8 个 PLP 池进行了闪电贷攻击。

漏洞原因在于 PLP 池合约对手续费奖励的计算上,一方面在计算中直接采用了用户的 LP 余额值,而 LP 可被随意转账至另一账户;另一方面,用户的奖励债务并不会随着 LP 的转账而转移。

于是攻击者在质押后将 LP 依次转移给两个辅助攻击合约,并在辅助攻击合约调用 collectFees() 函数时传参 0,为了触发 updateVault 以更新奖励数据,最后再通过 collectFees() 提取奖励。

总结

此次 Popsicle Finance 遭遇的闪电贷攻击的本质原因在于对手续费奖励计算的错误设计,未做全面考虑,从而使得攻击者通过多个地址循环利用资金流进行攻击套利。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。

作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请联系微信:chaindd123。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 创宇区块链安全实验室 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信