2 月 28 日,Seneca 商會合約中的一個嚴重漏洞被利用。攻擊者利用此漏洞竊取了批准超過Chamber合約抵押品的用戶資金。這次攻擊專門針對用戶錢包中持有的資產,而不是直接存入 Seneca 核心系統(TVL + Stake)的資金。
漏洞利用分析
攻擊者瞄準了
Seneca's Chamber.sol
合約中的performOperations()
函數。此函數允許任意呼叫其他合約,攻擊者利用它來執行.transferFrom()
呼叫。這使得攻擊者能夠使用 Chamber 合約作為支出者,將代幣直接從批准用戶的錢包轉移到攻擊者的錢包。這種攻擊會影響所有在使用Chamber合約時批准的抵押品金額超過其實際存款的用戶。總計 640 萬美元被盜。幸運的是,在白帽駭客介入並返還大部分資金後,大約 530 萬美元(80%)被追回,並保留了 104 萬美元(20%)作為賞金。
這是利用交易之一: https://etherscan.io/tx/0x9f3712672be7a120757d42fbe15ceefe9578914946bacbd0f3531e7fb7305576
結論
作為開發人員,在建立自己的專案時,不信任任何使用者輸入。給定的任何參數都必須由程式碼仔細驗證。呼叫不受信任的合約可能會帶來一些意想不到的風險或錯誤。外部呼叫可能會在目標合約內或其生態系統中觸發惡意程式碼。每個外部呼叫都應被視為潛在的安全風險,並且必須極為謹慎地處理。
此外,強烈建議對所有項目進行安全審計,即使它們是智能合約、後端、錢包或 dapp。
作為區塊鏈用戶,請記住:批准代幣將授予陌生人隨意使用代幣的權限。避免無限次批准,始終分配每筆交易所需的確切金額,即使會產生額外費用。立即主動審查並撤銷不必要的批准以保護您的資金。
感謝您閱讀 Verichains!免費訂閱以接收新帖子並支持我的工作。