於2025年1月13日,幣安智慧鏈(BSC)上的Mosca合約因join和withdraw流程中的邏輯錯誤而再次遭到攻擊。此次攻擊導致總損失約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!免費訂閱以接收新帖並支援我的工作。







