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 代幣。