慢雾科技 2024年09月05日
偏信则暗 —— Penpie 被黑分析
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Penpie项目是PendleFinance的流动性挖矿功能,旨在为PendleFinance市场提供被动收益。但由于Penpie在注册新的Pendle市场时,错误地假设所有由PendleFinance创建的市场都是合法的,攻击者利用PendleFinance开放式的市场创建流程,创建了一个含有恶意SY合约的市场合约,并通过闪电贷人为放大了奖励数额,最终获利近3千万美元。

🤔攻击者利用PendleFinance开放式的市场创建流程,创建了一个含有恶意SY合约的市场合约。

😈攻击者通过闪电贷人为放大了奖励数额,最终获利近3千万美元。

🛡️慢雾安全团队建议项目方在注册市场时,增加严格的白名单验证机制,确保只有经过验证的市场才能被接受。

🛡️慢雾安全团队建议项目方加强审计与安全测试,避免再次发生类似事件。

By: 九九@慢雾安全团队


背景


根据慢雾安全团队情报,2024 年 9 月 4 日,去中心化流动性收益项目 Penpie 遭攻击,攻击者获利近 3 千万美元。慢雾安全团队对该事件展开分析并将结果分享如下:

 

(https://x.com/Penpiexyz_io/status/1831058385330118831)


前置知识


Pendle Finance 是一种去中心化金融收益交易协议,总锁定价值超过 45 亿美元。该协议成功地与 Magpie 整合,旨在优化收益机会并增强其 veTokenomics 模型。在此基础上,Penpie 项目引入了流动性挖矿功能,使 Pendle Finance 的市场能够实现被动收益。


在 Pendle Finance 中包含以下几个重要概念:



根本原因


此次事件的核心在于 Penpie 在注册新的 Pendle 市场时,错误地假设所有由 Pendle Finance 创建的市场都是合法的。然而,Pendle Finance 的市场创建流程是开放式的,允许任何人创建市场,并且其中的关键参数如 SY 合约地址,可以由用户自定义。利用这一点,攻击者创建了一个含有恶意 SY 合约的市场合约,并利用 Penpie 池子在获取奖励时需要对外部 SY 合约调用的机制,借助闪电贷为市场和池子添加了大量的流动性,人为放大了奖励数额,从而获利。


攻击步骤分析


攻击前置准备


交易哈希:0x7e7f9548f301d3dd863eac94e6190cb742ab6aa9d7730549ff743bf84cbd21d1


1. 首先,攻击者通过 PendleYieldContractFactory 合约的 createYieldContract 函数创建 PT 和 YT 收益合约,将 SY 设置为攻击合约地址,并以此调用 PendleMarketFactoryV3 合约的 createNewMarket 函数创建了对应的市场合约 0x5b6c_PENDLE-LPT。


 

2. 接着,攻击者使用 PendleMarketRegisterHelper 合约的 registerPenpiePool 注册 Penpie 池子,此过程中会创建存款凭证 PRT 代币合约及相关的 rewarder 合约,并在 Penpie 中登记池子信息。

 


3. 随后,攻击者调用 YT 合约的 mintPY 函数,铸造大量 YT 和 PT,数量取决于攻击合约(SY 合约)返回的汇率。

 


4. 紧跟着,攻击者将 PT 存入市场 0x5b6c_PENDLE-LPT 并铸造 LP 代币。

 


5. 最后,攻击者将 LP 代币存入 Penpie 池子,换取存款凭证 PRT 代币。



正式攻击


交易哈希:0x42b2ec27c732100dd9037c76da415e10329ea41598de453bb0c0c9ea7ce0d8e5


1. 攻击者先通过闪电贷借出大量 agETH 和 rswETH 代币。

 


2. 调用 Penpie 池子的 batchHarvestMarketRewards 函数,批量收集指定市场的奖励,此操作触发了市场合约 0x5b6c_PENDLE-LPT 的 redeemRewards 函数。



3. 在 redeemRewards 函数中,外部调用了 SY 合约(攻击合约)的 claimRewards 函数,期间攻击者使用闪电贷资金为奖励代币增加流动性(攻击合约中特意将奖励代币设置为两种市场代币 0x6010_PENDLE-LPT 和 0x038c_PENDLE-LPT),并将获得的市场代币存入 Penpie 池子,从而获得相应的存款凭证代币。



4. 接着,这些新存入 Penpie 池子的市场代币会被当作计算出来的奖励,随后通过 Rewarder 合约的 queueNewRewards 函数将这些代币转移至该合约。

 


由于 0x5b6c_PENDLE-LPT 市场中仅攻击者一人存款,因此可以立即调用 MasterPenpie 合约的 multiclaim 函数,提取 Rewarder 合约中的这部分 LPT 代币。



5. 最后,攻击者通过 PendleMarketDepositHelper 合约的 withdrawMarket 函数燃烧在第三步获取的存款凭证 PRT,赎回市场代币,并将这些市场代币连同上一步中提取的奖励一同移除流动性,最终获取基础资产代币(agETH 和 rswETH),实现获利。



总结


此次安全事件暴露了 Penpie 在市场注册环节存在校验不足的问题,过度依赖 Pendle Finance 的市场创建逻辑,导致攻击者能够通过恶意合约控制奖励分配机制,从而获得超额奖励。慢雾安全团队建议项目方在注册市场时,增加严格的白名单验证机制,确保只有经过验证的市场才能被接受。此外,对于涉及外部合约调用的关键业务逻辑,应当加强审计与安全测试,避免再次发生类似事件。


慢雾导航


慢雾科技官网

https://www.slowmist.com/


慢雾区官网

https://slowmist.io/


慢雾 GitHub

https://github.com/slowmist


Telegram

https://t.me/slowmistteam


Twitter

https://twitter.com/@slowmist_team


Medium

https://medium.com/@slowmist


知识星球

https://t.zsxq.com/Q3zNvvF

?发表于:中国 中国香港

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Penpie PendleFinance 流动性挖矿 安全漏洞 攻击
相关文章