PolyYeld 遭攻击代币归零,PeckShield 简述攻击过程

 OKEX   2021-07-29 15:46   441 人阅读  0 条评论

攻击者通过抓住「通缩型代币」与 MasterChef 合约不兼容的漏洞完成了攻击,最终获利 25 万美元,代币 YELD 归零。

原文标题:《PeckShield:老马失蹄 PolyYeld 代币归零》
撰文:PeckShield

 PolyYeld 遭攻击代币归零,PeckShield 简述攻击过程-第1张图片-欧易OKX官网注册

7 月 28 日,收益聚合器 PolyYeld.Finance 遭到攻击,其代币 YELD 归零,攻击者获利 25 万美元。

PeckShield 安全人员第一时间定位分析,发现此次攻击源于 MasterChef 不兼容通缩型代币,使得攻击者可以通过打破流动池平衡获利。

基于 MasterChef 的设计,如果用户在 MasterChef 中存入 100 枚代币,仍可以从 MasterChef 中提取 100 枚代币,但实际上,由于在交易中协议会收取一定比例的手续费,合约中的余额是扣除手续费后的数值。一旦流动池中的总代币余额极小时,用户所获奖励就会急剧增长。

PeckShield「派盾」简述攻击过程:第一步,攻击者创建攻击合约在 PolyYeld 中抵押 xYELD 代币,以便后续获取 YELD 代币奖励。

 PolyYeld 遭攻击代币归零,PeckShield 简述攻击过程-第2张图片-欧易OKX官网注册

第二步,攻击者利用 xYELD 通缩型代币与 MasterChef 合约的兼容性问题,通过频繁地进行「抵押-提现」操作,最终导致合约中的 xYELD 代币数量消耗到一个极小的数量。

 PolyYeld 遭攻击代币归零,PeckShield 简述攻击过程-第3张图片-欧易OKX官网注册

随后,攻击者通过在合约中进行提现操作以获取 YELD 代币奖励,奖励的计算会除合约中 xYELD 代币数量,而此时合约中 xYELD 代币数量是一个极小的数量,所以导致除法计算后奖励的数量变成一个巨大的值。

 PolyYeld 遭攻击代币归零,PeckShield 简述攻击过程-第4张图片-欧易OKX官网注册

第四步,攻击者在获得大量 YELD 奖励后,将它们在 QuickSwap、SushiSwap、ApeSwap 中换为 ETH,最后通过 Tornado Cash 转移盗取资产。

此次攻击的核心问题在于「通缩型代币」与 MasterChef 合约不兼容导致的。此兼容性问题造成 PolyYeld 合约中 Yeld 代币被恶意耗尽,而 YELD 代币奖励计算又依赖于池中 YELD 代币数量,最终导致 YELD 代币价格闪崩。

由于收益聚合器需要多个合约进行交互,PeckShield「派盾」建议在进行设计时应充分考虑不同合约间交互的兼容性问题。

本文地址:https://www.xf112.com/post/106.html
版权声明:本文为原创文章,版权归 OKEX 所有,欢迎分享本文,转载请保留出处!

评论已关闭!