← 文章 / 编程开发
rustsec 6小时前 · 2026-09-29 01:13:57 · 1 阅读

RUSTSEC-2026-0306:faster-hex 的不健全性

报告时间:2026 年 9 月 20 日

发布时间:2026 年 9 月 23 日

包名: faster-hex ( crates.io)

类型:INFO / 无健全性

分类:

关键词: #buffer-overflow #avx2

参考资料:

已修复版本:

  • >=0.10.1

不受影响版本:

  • <0.3.0

受影响架构:

  • x86
  • x86_64

受影响函数

版本: faster_hex::hex_decode_unchecked

  • >=0.3.0, <0.10.1

描述

faster_hex::hex_decode_unchecked 是一个安全函数。在 x86 和 x86_64 架构上启用 AVX2 时,hex_decode_avx2 会在 dst.len() >= 32 时持续解码,随后从 src 加载 32 字节,再从 src[32..] 加载 32 字节。该循环对 src 的长度没有 64 字节的强制要求。

调用者可以传入短于 64 字节的 src 和长度至少为 32 字节的 dst。此时 AVX2 加载操作会读取超出 src 边界的数据。

自 0.3.0 版本起,该函数就保持这一实现形式。0.10.0 是最后一个包含无界 AVX2 读取的发布版本。维护者认同此安全通告,并在 0.10.1 中发布补丁(pull request 74):AVX2 循环现在要求执行这些加载前 src.len() >= 64。1.0.0 版本重写了 hex_decode_unchecked,将解码长度设为 min(src.len() / 2, dst.len())。这两个修复均包含在 >= 0.10.1 范围内。其他架构采用标量回退逻辑,不在此安全通告的范围内。

本安全通告在 CC0-1.0 许可协议下提供。

原始来源: rustsec

评论 (0)