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