BlockSec:DBXen合約遭遇攻擊,損失約15萬美元

BlockSec:DBXen合約遭遇攻擊,損失約15萬美元

事件概要

根據BlockSec Phalcon監測,DBXen合約於今日上午遭遇攻擊,估計損失約15萬美元。此事件的根本原因在於ERC2771元交易下發送者身份不一致。

技術細節

在burnBatch()函數中,gasWrapper()修飾器使用_msgSender()(實際用戶)更新狀態,而回調函數onTokenBurned()則使用msg.sender(轉發器)。這導致accCycleBatchesBurned為用戶記錄,但lastActiveCycle錯誤地為轉發器更新。

此不一致性破壞了claimFees()與claimRewards()的邏輯。當為用戶執行updateStats()時,合約錯誤地認為存在未處理的已銷毀批次,因為accCycleBatchesBurned已更新而lastActiveCycle未更新,進而錯誤計算獎勵和費用,使攻擊者得以提取超額資金獲利。

相關連結

PANews原文連結

來源:https://www.panewslab.com/zh/articles/019ce117-21df-7712-99f9-80be5079ee1a

返回頂端