揭露 Mosca 項目中的缺陷邏輯

本文為機器翻譯
展示原文

於2025年1月13日,幣安智慧鏈(BSC)上的Mosca合約因joinwithdraw流程中的邏輯錯誤而再次遭到攻擊。此次攻擊導致總損失約37.6k美元。

關鍵資訊

攻擊者:

https://bscscan.com/address/0xe763da20e25103da8e6afa84b6297f87de557419

漏洞合約:

https://bscscan.com/address/0xd8791f0c10b831b605c5d48959eb763b266940b9

攻擊交易:

https://bscscan.com/tx/0xf13d281d4aa95f1aca457bd17f2531581b0ce918c90905d65934c9e67f6ae0ec

漏洞分析

攻擊者利用設計缺陷,在執行withdrawFiat函式之前發起了七次連續的join呼叫。這一序列使攻擊者能夠操縱其餘額的累積,並提取超出其存款的資金。

join函式分析

join函式旨在管理質押輸入。然而,其邏輯允許使用者餘額根據先前餘額不斷累積。透過連續呼叫七次join,攻擊者人為地膨脹了自己的餘額。這種對質押收益計算的非常規方法創造了可被利用的意外狀態。

withdrawFiat函式分析

withdrawFiat函式中,合約直接根據使用者輸入扣除提款金額,並將該金額轉回給使用者。這一公式與join函式的累積邏輯不一致,使攻擊者能夠提取超出原始存款的資金。

根本原因

核心問題在於join函式中的累積機制與withdrawFiat函式中的提款公式之間的不匹配。儘管withdrawFiat根據自身邏輯正確執行,但它未能考慮到重複join呼叫產生的複合餘額。這種差異加上缺乏充分的驗證檢查,使攻擊者能夠提取大大超出其存款的資金。

經驗教訓

Mosca合約漏洞暴露了該專案智慧合約設計中的一個核心且可避免的缺陷——這是在開發過程中徹底測試和安全審計就可以發現並解決的漏洞。這個案例突出了強大的測試用例、形式驗證和第三方程式碼審查在部署前發現潛在攻擊向量的重要性。它也強調了智慧合約安全不僅僅侷限於開發,還需要持續的風險評估和監控,以保護區塊鏈生態系統免受利用。

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

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