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

Aptos Core 修复状态 KV 截断漏洞,解决首次写入密钥条目泄露问题

2026年9月11日 · 1 分钟阅读

Aptos Core 维护人员合并了一项关键漏洞修复,解决了数据库修剪系统中的状态 KV 截断泄露问题。在 PR #352 中详细记录的该问题发生在 `truncate_state_kv_db_shards` 函数无法发现并删除首次写入密钥创建的孤立状态值时。

根本原因在于截断逻辑依赖 `StaleStateValueIndexByKeyHashSchema` 来识别要删除的条目。然而,首次写入密钥创建(即不存在先前版本的情况)从未写入陈旧索引条目,导致截断扫描完全遗漏了这些条目。这导致孤立的 `StateValueByKeyHashSchema` 条目遗留在截断点之外,可能导致数据库膨胀和性能下降。

此修复为首次写入密钥创建引入了带有 `version = Version::MAX` 的哨兵陈旧索引条目。这使现有的基于 `stale_since_version` 的扫描能够发现这些条目并将其正确清理。修剪器通过对哨兵检查 `is_first_write()` 来跳过不必要的无操作删除,确保效率。

测试覆盖范围得到显著扩展:`db_debugger/truncate/mod.rs` 中的测试套件现在使用 500 个账户池(从 5 个增加),可靠地在截断目标版本之后触发新密钥创建,proptest 案例从 1 个增加到 5 个。新提取的参数化辅助程序 `arb_blocks_to_commit_with_params` 提高了测试灵活性。现有的修剪器和状态存储测试继续通过,确认向后兼容性。

来源 github.com
分享
The Kagari

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

© 2026 The Kagari. 版权所有。