Mosca 黑客分析

本文為機器翻譯
展示原文

在2025年1月8日,由於更新使用者餘額時存在缺陷,導致BSC上的Mosca合約遭到駭客攻擊,造成約19,485美元的損失。

概述

分析

當用戶join()時,他們會被新增到rewardQueue中。從此,每當其他使用者buy()swap()代幣時,他們就會獲得獎勵。

感謝閱讀Verichains!免費訂閱以接收新帖並支援我的工作。

當用戶決定退出時,會呼叫exitProgram()。它會遍歷rewardQueue,當找到匹配的使用者時,呼叫withdrawAll()將所有待領取的獎勵轉移給使用者。

withdrawAll()中,使用者的總獎勵計算為:
balance = user.balance + user.balanceUSDT + user.balanceUSDC
但是,在exitProgram()中,只有user.balance被設定為0,user.balanceUSDTuser.balanceUSDC在使用者退出後仍然保持原值。駭客利用了這個漏洞進行了攻擊。

駭客首先join()該協議併成功存入一些資產(步驟4)。然後,他們利用一個池子進行閃電貸(步驟15),並建立一個'偽造的'buy()操作(步驟23)來獲得自己的獎勵。最後,他們反覆呼叫join()exitProgram()來清空合約中的USDC。

結論

開發人員違反了檢查-效果-互動模式,並在駭客攻擊發生前僅幾天部署了Mosca合約,這可能表明他們面臨著高度的時間壓力,產品缺乏足夠的測試。為了防止此類問題,我們強烈建議從開發的初始階段開始,並貫穿整個專案的生命週期,實施健全的稽核流程。定期進行安全審計、程式碼審查和漏洞評估應該是標準做法,以在漏洞被利用之前識別和解決潛在的風險。

感謝閱讀Verichains!免費訂閱以接收新帖並支援我的工作。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論