Penpie漏洞:2700万美元的重入攻击盗窃案

本文详细分析了Penpie平台的安全漏洞,该漏洞导致超过2700万美元的损失。文章介绍了Pendle Finance及其核心机制,同时详细阐述了攻击流程、漏洞成因及其后果,并提出了防止此类攻击的措施。通过使用图表和技术细节,文章提供了对加密安全的深入见解。

"Penpie Exploit: $27M Heist with Reentrancy Bug - Three Sigma" banner

引言

Pendle Finance

Pendle 是一个去中心化、无需许可的协议,旨在实现收益交易,使用户能够实施多种收益管理策略。

要充分理解Pendle的工作原理,了解其三个主要组成部分是很重要的:

  • 收益代币化 Pendle允许用户将收益生成代币包装成SY(标准化收益代币),使它们与Pendle的AMM兼容。例如,像stETH这样的收益生成代币可以转化为SY-stETH。然后,这个SY代币被拆分为两个部分:PT(本金代币)和YT(收益代币),代表资产的本金和收益部分。这个过程称为收益代币化,将收益分离为其自身的可交易代币。

  • Pendle AMM PTYT都可以在Pendle的AMM(自动化做市商)上进行交易。虽然AMM是Pendle功能的核心,但了解其机制并不是进行PT和YT交易所必需的。

  • vePENDLE Pendle的治理由vePENDLE驱动。用户可以锁定PENDLE代币以获取vePENDLE,锁定时间越长,vePENDLE的价值越高。vePENDLE的价值随着时间推移而降低,但用户可以延长锁定时间以对抗这种衰减。

Penpie

Penpie 是一个下一代DeFi平台,专门为Pendle Finance的用户增强收益和治理能力。它专注于锁定PENDLE代币,允许用户在Pendle Finance的生态系统中享受更高的治理权和增强的收益机会。通过利用Pendle Finance的veTokenomics模型,Penpie为用户提供了最大化收益和治理权的新方式。

Penpie引入了一种机制,允许PENDLE代币持有者以1:1的比例将其代币转换为mPENDLE。这种转换使用户能够通过该平台获得最大化的PENDLE奖励。一旦PENDLE代币被转换为mPENDLE,Penpie将在Pendle Finance内将原始PENDLE锁定为vePENDLE。这个过程使Penpie能够积累vePENDLE,从而获得增加的PENDLE奖励和更大的治理权。

攻击分析

2024年9月3日UTC时间下午6:23,在Penpie平台的一个安全漏洞被利用,导致在Arbitrum和Ethereum网络上损失超过2700万美元。攻击者创建了一个虚假的Pendle市场来操纵奖励,夸大了质押余额并声称未授权资金。

被盗资产包括wstETH、sUSDe、agETH、rswETH和其他Pendle相关的YT代币。

漏洞利用

该事件由两个主要因素造成:

  1. PendleStaking::batchHarvestMarketRewards()缺少重入保护
  2. 尽管Pendle市场、PT和YT代币是允许创建的,Penpie接受了所有Pendle市场作为有效的池。

攻击细节:

  • 创建虚假市场:攻击者使用欺诈性SY代币创建了一个虚假的Pendle市场,该代币也用于攻击合约。攻击者创建了一个池,为Pendle市场铸造了YT和PT代币,然后将市场存入Penpie。

  • 闪电贷执行:攻击者从Balancer借得agETH、rswETH、egETH和wstETH的闪电贷,然后将资金存入虚假的SY合约。

  • 重入:攻击者调用了PendleStaking::batchHarvestMarketRewards(),以恶意市场为参数。在此调用过程中,攻击者能够重新进入该函数,因为PendleMarket::redeemRewards()被调用在虚假的SY市场上。

  • 操纵奖励计算:最初,虚假市场返回了希望被PendleMarket::getRewardTokens()函数盗取的代币类型,这些代币被记录在bonusTokens数组中。

随后,PendleStaking合约的代币余额记录在amountsBefore数组中。接下来,在虚假市场上调用了PendleMarket::redeemRewards()函数,这将闪电借款的代币存入合法市场,通过PendleStaking::depositMarket()。尽管该函数有一个nonReentrant修饰符,但由于如前所述,batchHarvestMarketRewards()函数缺乏这种保护,因此绕过了修饰符。

这导致了PendleStaking余额的增加,使合约错误地假设余额增加是由于赎回的奖励而不是存入的资金。这导致amountAfter数组中反映出显著更大的奖励。

  • 索取奖励PendleStaking然后将错误的奖励代币(Pendle市场)和金额发送给RewardDistributor,将这些Pendle市场归因于虚假的Pendle市场存款人。由于攻击者是虚假Pendle市场中唯一的存款人,他们能够索取所有的奖励,包括wstETH、sUSDe、egETH和rswETH Pendle市场代币。
  • 提款和转换:攻击者随后从他们存入的合法Pendle市场提款并将Pendle市场代币转换回他们的原始资产。随后,他们偿还了闪电贷并保留了剩余的利润。

如何防止此次攻击

虽然在PendleStaking::depositMarket()函数中存在重入检查,但batchHarvestMarketRewards()函数缺乏这种保护,允许了利用的发生。在该函数上实施nonReentrant修饰符可能已能够防止此次攻击。

协议响应

Penpie协议在所有链上被暂停。Penpie团队与Pendle Finance及安全联盟(SEAL 911)共同进入战情室。Pendle Finance在X上发布消息,告知用户他们的平台未受到影响,但他们承认,Penpie在此次攻击中遭到针对,导致了安全漏洞。Penpie团队还向Kampong Java邻里警察中心提交了报告。

团队还开始与Hypernative合作追踪黑客的活动。一个积极进展是,Pendle的日志系统在黑客使用Pendle的前端进行YT交换时识别出了攻击者的VPN IP地址。该VPN IP地址已报告给新加坡技术犯罪高级调查官,他们将把网络犯罪事件转发给VPN提供商以获取更多信息。

此外,团队还与Binance安全团队、Slowmist和Chainalysis/zeroShadow展开沟通,以揭示与Tornado Cash存款有关的信息。

后果

在多个链上被盗约2700万美元。不幸的是,攻击者没有回复任何消息(TX),并开始将被盗资金分批转移到Tornado Cash中,每批100 ETH,来自不同的账户(TX),有效地洗钱。

Pendle Finance短暂暂停了其合约,保护了大约7000万美元(不包括vePENDLE头寸),这些都可能从Penpie中进一步被掏空。今后,团队将继续尝试与攻击者进行谈判,期望达成白帽和解。

联系Three Sigma,让我们经验丰富的专业团队自信地引导你穿越Web3的领域。凭借我们在智能合约安全、经济建模和区块链工程方面的专业知识,我们将帮助你确保项目的未来。

今天就联系我们,让你的Web3愿景变为现实!

地址

恶意市场的部署

攻击

骗子钱包

消息

  • 原文链接: threesigma.xyz/blog/penp...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Three Sigma
Three Sigma
Three Sigma is a blockchain engineering and auditing firm focused on improving Web3 by working closely with projects in the space.