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