Virtuals Protocol 修复了其智能合约中的一个严重漏洞,并重启了漏洞赏金计划以奖励安全研究人员。
虚拟协议(Virtuals Protocol),一家专注于人工智能代理的区块链公司,已解决其经过审核的智能合约中的一个关键漏洞。
一位匿名的安全研究员发现了该项目审核合约中的一个严重漏洞,促使公司进行了紧急修复。该公司还重新启动了其漏洞奖励计划,以防止未来出现类似漏洞。
2024年12月3日,匿名安全研究员Jinu发现了虚拟协议的一个经过审核的智能合约中的关键漏洞。
研究员迅速将问题报告给虚拟协议,但该公司当时没有活跃的漏洞奖励计划。
因此,尽管该漏洞可能对协议的生态系统产生影响,但这一发现并没有资格获得奖励。
Jinu在社交平台X(前身为Twitter)上发布后,与虚拟协议团队取得了联系。他们迅速修复了该漏洞。
漏洞源于该平台在Uniswap V2上的代币发行机制。
问题出在虚拟协议创建代币对的方式,这一过程类似于Pump.fun通过价格阈值和绑定机制启动代币的方法。
安全研究员Jinu发现了一个关键问题,可能会阻止虚拟协议发放新代币。
他指出,AgentToken创建过程使用了Clones库,这使得基于AgentFactoryV3合约的nonce,将来代币地址的生成变得可预测。
此外,AgentToken合约中的初始化函数调用了Uniswap V2的createPair函数,但并没有验证配对是否已经存在。
如果已经存在,则Uniswap V2的工厂会撤销交易。这个缺陷也允许创建与不存在的合约配对。
攻击者可以通过预先创建一个具有预测nonce的Uniswap配对来利用这一点,从而阻止虚拟协议发放其代币。Jinu在Tenderly上展示了这一利用的概念证明。
Jinu建议修改AgentToken.sol合约,在尝试创建配对之前检查Uniswap V2中是否存在已有配对,如果存在则跳过该过程。
尽管问题的严重性很高,虚拟协议并没有回应,甚至关闭了专门用于报告漏洞的Discord小组。
Jinu对这种失误表示沮丧,评论道:“我很惊讶,像虚拟协议这样大且热门的项目竟然不关注安全。”
在Jinu在X(前身为Twitter)上公开披露这一问题后,虚拟协议联系了Jinu并迅速实施了修复。
该公司承认漏洞的严重性,并对最初的沟通不畅表示歉意。
在给Jinu的消息中,虚拟协议表示:
“我们已经验证了漏洞并应用了补丁。谢谢你让我们注意到这个问题。我们对此次沟通不畅表示歉意,并将审查该问题的严重性,以决定漏洞奖励。”
他们通过更新合约,添加必要的验证步骤来修复该漏洞。为了透明起见,新合约及修复细节已经在BaseScan和GitHub上发布。
然而,虚拟协议尚未确认对Jinu发现的奖励金额。该公司表示,他们在给予奖励之前会先内部评估漏洞的影响。