跳至正文
预览模式 — 包含未审核文章,请勿对外分享。 在生产环境查看 →
The Kagari
Developer

Movement Aptos Core修复代币对象中的royalty查询漏洞

2026年10月1日 · 1 分钟阅读

Movement的Aptos Core存储库的拉取请求已修复代币royalty查询中的一个重大漏洞,该漏洞暴露了影响NFT市场和royalty分配的两种严重故障模式。

该漏洞存在于`token::royalty`函数中,当代币不带自己的royalty时,该函数会回退到集合的royalty。原始实现使用`collection::create_collection_address(creator, collection_name)`重新推导集合地址。但由于集合名称可通过`collection::set_name`进行变更,重命名集合会破坏此推导过程并导致查询失败。

这导致了两个可观察的问题。首先,如果重命名后该创建者下没有持有新名称的集合,视图函数会因`EOBJECT_DOES_NOT_EXIST`而中止,导致调用`tokenv2::royalty()`的市场操作彻底且无法恢复地失败。其次,如果创建者在原始名称下已注册了另一个集合,推导过程会错误地指向该第二个集合,即使对于不具有可变royalty引用的集合,royalty支付也会被错误地引导。

PR #416中详述的修复方案是从铸造时直接存储在代币上的`Object<Collection>`引用读取数据,而不是重新推导。该字段仅写入一次,不受重命名的影响。增加了四项回归测试,涵盖重命名后的代币royalty回退、名称碰撞场景、royalty缺失时的行为和优先级规则。修复后,完整`aptos-token-objects`测试套件的全部87个测试都已通过。

来源 github.com
分享
The Kagari

Kagari 是一个专注于下一代区块链的多语言媒体平台。通过整理官方新闻、开发者资源和黑客松动态,致力于成为帮助构建者和用户更轻松地跟踪生态发展的信息层。

© 2026 The Kagari. 版权所有。