BlockSec:DBXen 合約遭遇攻擊,損失約 15 萬美元
ChainCatcher 消息,据 BlockSec 監測,DBXen 合約今日上午遭遇攻擊,估計損失約 15 萬美元。根本原因在於 ERC2771 元交易下發送者身份不一致。在 burnBatch() 函數中,gasWrapper() 修飾器使用 _msgSender()(實際用戶)更新狀態,而回調函數 onTokenBurned() 使用 msg.sender(轉發器)。這導致 accCycleBatchesBurned 為用戶記錄,但 lastActiveCycle 錯誤地為轉發器更新。
該不一致性破壞了 claimFees() 和 claimRewards() 的邏輯。當為用戶運行 updateStats() 時,合約錯誤地認為存在未處理的已銷毀批次,因為 accCycleBatchesBurned 已更新而 lastActiveCycle 未更新,從而錯誤計算獎勵和費用,使攻擊者能夠提取超額資金獲利。








