PANews 3月12日消息,据BlockSec Phalcon监测,DBXen合约今日上午遭遇攻击,估计损失约15万美元。根本原因在于ERC2771元交易下发送者身份不一致。在burnBatch()函数中,gasWrapper()修饰器使用_msgSender()(实际用户)更新状态,而回调函数onTokenBurned()使用msg.sender(转发器)。这导致accCycleBatchesBurned为用户记录,但lastActiveCycle错误地为转发器更新。该不一致性破坏了claimFees()和claimRewards()的逻辑。
阅读原文