← 文章 / 未分类
rustsec 7小时前 · 2026-09-18 19:16:15 · 0 阅读

RUSTSEC-2026-0290:pqc_kyber 中的漏洞

当在 x86_64 架构上以可选的 avx2 特性构建 pqc_kyber 时,其常量时间条件移动例程 cmov 失效为空操作,即根本不执行复制操作。而 cmov 正是解封装期间应用 Fujisaki-Okamoto (FO) 隐式拒绝机制的关键步骤。一旦该操作被禁用,对无效密文进行解封装时,不再返回与密钥无关的伪随机值,而是返回一个取决于攻击者所选密文解密明文的数值。这重新引入了 FO 变换旨在消除的选明文解密预言机,导致静态密钥被完整恢复。

此攻击无需时间测量、无侧信道利用、无故障注入;只需具备向重用密钥对的解封装操作提交密文并观察所生成共享密钥的能力。根因分析、可达调用路径及复现详情请参阅关联的拉取请求。

受影响配置

仅在 x86_64 目标且启用 features = ["avx2"] 的构建中可被触发。默认(参考)后端及所有非 x86_64 目标均不受影响。

影响范围

完全破坏 IND-CCA 安全性。明文检查预言机驱动标准的选明文密钥恢复攻击,提取完整的静态密钥。任何在解封装之间重用 Kyber 密钥对的协议(静态或长期 KEM 密钥、KEMTLS、HPKE 接收方、固定密钥)均存在暴露风险;仅临时密钥不受影响。该缺陷已在 ML-KEM-768 上进行端到端验证:完整静态密钥在 4,272 次解封装查询中被成功恢复。

维护状态

该 crate 已停止维护(最后一次发布于 2023 年 8 月,版本 0.7.1);不存在亦不预期存在修复版本。

缓解措施

  • 若继续使用此 crate,请勿启用 avx2 特性;默认参考后端能正确执行隐式拒绝。
  • 不要在多次解封装之间重用 Kyber 密钥对。

致谢

报告者:007bsd。

安全通告依据 CC0-1.0 许可证发布。

原始来源: rustsec

评论 (0)