被盗约 2700 万美元的加密资产,penpie 为何被黑客「血洗」?
2024 年 09 月 04 日,据 bin alert 监测显示,建立在 pendle 上的 协议 penpie 遭到黑客攻击,被盗取约 2700 万美元的加密资产。beosin 安全团队第一时间对事件进行了分析,结果如下。
penpie 是一个与 pendle finance 集成的 defi 平台,专注于锁定 pendle 代币以获得 pendle finance 内的治理权和增强的收益收益。penpie 旨在为 pendle finance 用户提供收益和 vetokenomics 提升服务。
事件相关信息
●攻击交易
0x56e09abb35ff12271fdb38ff8a23e4d4a7396844426a94c4d3af2e8b7a0a2813
●攻击者地址
0xc0eb7e6e2b94aa43bdd0c60e645fe915d5c6eb84
●攻击合约
0x4af4c234b8cb6e060797e87afb724cfb1d320bb7
●被攻击合约
0x6e799758cee75dae3d84e09d40dc416ecf713652
漏洞分析
本次事件主要是攻击者利用 market 合约中 claimrewards 函数重入质押以提高 staking 合约余额,再将 staking 合约中多余的代币和质押资产提取以获利。
攻击流程
攻击准备阶段:
1. 攻击者通过攻击合约调用用 penpie 协议中的 factory 合约创建了新的 market 以及 yield,其中将 sy 设置为攻击合约。
0xfda0dde38fa4c5b0e13c506782527a039d3a87f93f9208c104ee569a642172d2
2.攻击者进行闪电贷了四种代币,为后续抵押资金作储备。并调用 staking 合约中的 batchharvestmarketrewards 函数对新创建的 market 进行奖励更新。
3.在 batchharvestmarketrewards 函数中,对 market 进行奖励更新时,会调用 market 合约中的 redeemrewards 函数。并且合约记录了 redeemrewards 函数前后的余额变化。
4.在 market 的 redeemrewards 函数中,会调用到 sy 合约中的 claimreward 函数。然而 sy 合约是攻击合约,攻击合约通过这个函数完成了对 staking 合约的重入,将闪电贷的资金抵押到 staking 合约,共 4 次。
5.这时回到 staking,由于 redeemrewards 函数前后余额差明显,触发了_sendrewards 函数,_sendrewards 函数最后调用的_queuerewarder 会将多余的代币授权给 market 合约并记录为奖励。
6.攻击者领取记录的奖励。
7.攻击者将质押的资产通过 withdraw 函数提取,并归还闪电贷进行获利。
pendle 随后发布攻击分析报告:发现漏洞后立即暂停合约,使 1.05 亿美元资产免受进一步损失。
资金追踪
截止发文时,被盗资金约 2700 万美元,beosin trace 追踪发现攻击者已将被盗资金全部转换为 eth,资金先存放在 0x2f2dde668e5426463e05d795f5297db334f61c39 地址。
截止发文,penpie 攻击者地址向 tornado cash 陆续转移了 2900 枚 eth(价值约 690 万美元)。
目前,penpie 项目方也通过链上向黑客喊话,希望与黑客进行沟通返还被盗资金,如果返还可以支付赏金。并附上了金沙下载送彩金的联系方式。
总结
针对本次事件,beosin 安全团队建议:1.对合约的相关函数增加防重入修饰器;2.不使用白名单对传入代币进行校验的话,最好使用统一的包装合约重新生成代币;3.项目上线前,强烈建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。