
約2700万ドル相当の暗号資産が盗難されたPenpieは、なぜハッカーに「血まみれ」にされたのか?
TechFlow厳選深潮セレクト

約2700万ドル相当の暗号資産が盗難されたPenpieは、なぜハッカーに「血まみれ」にされたのか?
9月4日、Pendle上に構築されたDeFiプロトコルPenpieがハッキングされ、約2700万ドル相当の暗号資産が盗まれた。
執筆:Beosin
2024年9月4日、Beosin Alertのモニタリングにより、Pendle上に構築されたDeFiプロトコル「Penpie」がハッキングされ、約2700万ドル相当の暗号資産が盗難されたことが判明しました。Beosinセキュリティチームは直ちに事件を分析し、その結果を以下に示します。
PenpieはPendle Financeと統合されたDeFiプラットフォームで、PENDLEトークンのロックを通じてPendle Finance内でのガバナンス権および収益の増強を提供することに特化しています。Penpieは、Pendle Financeユーザーに対して収益性とveTokenomicsの向上サービスを提供することを目的としています。
事件に関する情報
● 攻撃トランザクション
0x56e09abb35ff12271fdb38ff8a23e4d4a7396844426a94c4d3af2e8b7a0a2813
● 攻撃者アドレス
0xc0Eb7e6E2b94aA43BDD0c60E645fe915d5c6eb84
● 攻撃用コントラクト
0x4aF4C234B8CB6e060797e87AFB724cfb1d320Bb7
● 被害を受けたコントラクト
0x6e799758cee75dae3d84e09d40dc416ecf713652
脆弱性分析
本件は、攻撃者がmarketコントラクト内のclaimRewards関数を利用して再入(リエントランシー)攻撃を行い、stakingコントラクトの残高を不正に増加させた後、その余剰分のトークンおよびステーキング資産を引き出すことで利益を得たものです。
攻撃の流れ
攻撃準備段階:
1. 攻撃者は攻撃用コントラクトからPenpieプロトコルのFactoryコントラクトを呼び出し、新しいmarketおよびYieldを作成しました。このとき、SY(Share Yielder)として攻撃用コントラクト自身を設定しています。
0xfda0dde38fa4c5b0e13c506782527a039d3a87f93f9208c104ee569a642172d2

2. 攻撃者は4種類のトークンをフラッシュローンで調達し、今後の担保資金を準備しました。その後、stakingコントラクトのbatchHarvestMarketRewards関数を呼び出して、新しく作成したmarketの報酬情報を更新しました。

3. batchHarvestMarketRewards関数内で報酬更新を行う際、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に累計2900ETH(約690万ドル相当)を送金しています。
現在、Penpieプロジェクトチームはチェーン上で攻撃者にメッセージを送り、盗難資金の返還を求めています。返還に応じれば報奨金を支払う意向もあり、連絡先も付記されています。
まとめ
本件について、Beosinセキュリティチームは以下の対策を提案します。
1. コントラクトの関数には再入防止修飾子(Reentrancy Guard)を導入すること。
2. ホワイトリストを使用せずに入力されるトークンを検証する場合は、統一されたラップコントラクトを通じてトークンを再生成することを推奨します。
3. プロジェクト公開前に、専門的なセキュリティ監査会社による包括的なセキュリティ監査を強く推奨します。これにより、潜在的なセキュリティリスクを回避できます。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News













