2024年09月04日,據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合約余額,再將staking合約中多余的代幣和質押資產提取以獲利。
攻擊流程
攻擊准備階段:
1. 攻擊者通過攻擊合約調用用Penpie協議中的Factory合約創建了新的market以及Yield,其中將SY設置爲攻擊合約。
0xfda0dde38fa4c5b0e13c506782527a039d3a87f93f9208c104ee569a642172d2
2.攻擊者進行閃電貸了四種代幣,爲後續抵押資金作儲備。並調用staking合約中的batchHarvestMarketRewards函數對新創建的market進行獎勵更新。
3.在batchHarvestMarketRewards函數中,對market進行獎勵更新時,會調用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陸續轉移了2900枚ETH(價值約690萬美元)。
目前,Penpie 項目方也通過鏈上向黑客喊話,希望與黑客進行溝通返還被盜資金,如果返還可以支付賞金。並附上了聯系方式。
總結
針對本次事件,Beosin安全團隊建議:1.對合約的相關函數增加防重入修飾器;2.不使用白名單對傳入代幣進行校驗的話,最好使用統一的包裝合約重新生成代幣;3.項目上线前,強烈建議選擇專業的安全審計公司進行全面的安全審計,規避安全風險。
Beosin作爲全球最早一批從事形式化驗證的區塊鏈安全公司,主打”安全+合規“全生態業務,在全球10多個國家和地區設立了分部,業務涵蓋項目上线前的代碼安全審計、項目運行時的安全風險監控與阻斷、被盜追回、虛擬資產反洗錢(AML)以及符合各地監管要求的合規評估等“一站式”區塊鏈合規產品+安全服務。歡迎點擊公衆號留言框,與我們聯系。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。