据 Beosin Alert 监测,基于 Pendle 的 DeFi 协议 Penpie 遭受黑客攻击,损失约 2700 万美元的加密资产。Beosin 对此次事件的分析如下:
攻击者利用 market 合约中的 claimRewards 函数进行重入质押,以增加 staking 合约的余额。
攻击者首先创建一个攻击合约,并通过官方的 factory 构建对应的 market 合约。
调用 staking 合约的 batchHarvestMarketRewards 函数对该 market 进行奖励更新。
在奖励更新过程中,会回调攻击合约的 claimRewards 函数,从而实现重入并将闪电贷获取的资产进行质押,导致 staking 合约的资产形成数量差异,并将多余的部分提取出来。
攻击者将质押的资产提取出来,并归还闪电贷,从而实现获利。