據(jù) Beosin Alert 監(jiān)測,Pendle 上的 DeFi 協(xié)議 Penpie 遭受黑客攻擊,損失約 2700 萬美元的加密資產(chǎn)。Beosin 對此次事件進行了如下簡析:
攻擊者利用 market 合約中的 claimRewards 函數(shù)進行重入質(zhì)押,以增加 staking 合約的余額,然后將多余的代幣和質(zhì)押資產(chǎn)提取出來獲利。
具體步驟如下:
1. 攻擊者首先創(chuàng)建一個攻擊合約,并通過官方的 factory 構(gòu)建對應(yīng)的 market 合約。
2. 調(diào)用 staking 合約的 batchHarvestMarketRewards 函數(shù)對該 market 進行獎勵更新。
3. 在更新獎勵時,會回調(diào)攻擊合約的 claimRewards 函數(shù),利用該函數(shù)進行重入,將閃電貸獲取的資產(chǎn)進行質(zhì)押,導(dǎo)致 staking 合約的資產(chǎn)數(shù)量產(chǎn)生差異,并將多余的部分提取出來。
4. 攻擊者將質(zhì)押的資產(chǎn)提取出來,并歸還閃電貸,從而實現(xiàn)獲利。