2024 年 9 月 3 日,为Pendle Finance 提供收益和 veTokenomics 助推服务的 PenPie 项目遭到攻击,造成约 2700 万美元的损失。让我们来看看这次攻击是如何发生的细节。
概述
攻击者地址:
https://etherscan.io/address/0x7a2f4d625fb21f5e51562ce8dc2e722e12a61d1b
攻击交易:
https://etherscan.io/tx/0x7e7f9548f301d3dd863eac94e6190cb742ab6aa9d7730549ff743bf84cbd21d1
https://etherscan.io/tx/0x42b2ec27c732100dd9037c76da415e10329ea41598de453bb0c0c9ea7ce0d8e5
背景
Pendle Finance 允许用户通过将收益资产分为 PT 和 YT 两个部分来交易未来收益:
PT(Principal Token):代表基础资产(本金)的所有权,分离后不再产生收益。
YT(收益代币):代表直至到期为止从资产中获得未来收益的权利。
要创建新的PT和YT代币对,创建者需要在调用PendleYieldContractFactory.createYieldContract()
函数时提供SY合约地址。
SY(标准化收益)是Pendle团队创建的代币标准(EIP-5115)。它包装任何产生收益的代币,并提供标准化接口来与这些代币的收益生成机制进行交互。
如果用户想将其代币存入Pendle协议,以 stETH 为例,他们会将其 stETH 存入Pendle并收到 SY-stETH(stETH 的标准化收益版本)。然后Pendle将此 SY-stETH 拆分为 PT-stETH 和 YT-stETH。
为了实现 PT 和 SY 代币之间的交易,在 PT 和其对应的 SY 代币之间创建了Pendle市场 ( PendleMarketV3
)。支付给流动性提供者的激励代币是Pendle代币。通过锁定Pendle,用户可以获得 vePENDLE 治理代币,其价值与质押的数量和期限成正比(最长 2 年)。
PenPie 是一种建立在Pendle Finance 之上的协议,旨在为用户提供收益和 veTokenomics 提升服务。与Pendle Finance 集成后,PenPie 专注于锁定Pendle代币以获得Pendle Finance 内的治理权和增强的收益收益。
PenPie 允许将Pendle创建的市场合约注册到其 PendleStaking 合约中,该合约是代表用户持有 vePENDLE 头寸以提高收益率和投票权的主要合约。
漏洞分析
攻击过程可以分为两步,通过以下两笔交易进行分析:
第一笔交易
接下来攻击者调用PendleYieldToken
合约的mintPY
函数,该函数用于将 SY 代币化为 PT 和 YT,由于 SY 合约被攻击者控制,因此攻击者可以铸造大量的 PT 和 YT 代币。
随后,攻击者将 PT 和 SY 代币(SY 代币由攻击者任意铸造)提供给Pendle市场来铸造 LP 代币( fake_0x5b6c_PENDLE-LPT
)。
第二笔交易
在Pendle和 PenPie 中建立虚假市场和资金池后,攻击者执行了第二笔交易来窃取资金。首先,他们需要使用来自BalancerVault
的闪电贷借入大量 agETH 和 rswETH 代币。