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相关的任何投资建议。
喜欢
收藏
评论