← 文章 / 未分类
rustsec 1小时前 · 2026-09-18 17:45:37 · 1 阅读

RUSTSEC-2026-0288:cosmian_kyber 中存在漏洞

cosmian_kyberArgyle-Software/kyber 的一个 fork,其 AVX2 后端继承了一个有缺陷的常量时间条件移动函数 cmov。在 x86_64 上启用可选的 avx2 feature 构建时,cmov 实际上是个空操作:从不执行复制。而 cmov 正是解封装过程中执行 Fujisaki-Okamoto(FO)隐式拒绝的步骤。该步骤失效后,解封装无效密文时不再返回与密钥无关的伪随机值,而是返回一个依赖于攻击者所选密文解密明文的值。这相当于重新暴露了 FO 变换本应消除的选择密文解密预言机,最终可完整恢复静态私钥。

该攻击无需计时测量、侧信道或故障注入,只需能向使用同一密钥对的解封装操作提交密文并观察返回的共享密钥即可。根本原因及可触发的调用路径见关联的 pull request。

受影响的配置

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

影响

IND-CCA 安全性完全被破坏。明文校验预言机可驱动标准的选择密文密钥恢复攻击,提取完整的静态私钥。任何在多次解封装中复用同一 Kyber 密钥对的协议都会暴露;仅使用临时密钥共享的场景则不受影响。上游 crate 中相同的缺陷已在 ML-KEM-768 上端到端验证(4,272 次解封装查询即可完整恢复密钥)。

维护状态

cosmian_kyber 是一个无人维护的上游项目的过时 fork(最后发布版本为 2023 年 1 月的 0.1.0),预计不会有修复版本。

缓解措施

  • 如果继续使用该 crate,请勿启用 avx2 feature;默认的参考后端能正确执行隐式拒绝。
  • 不要在多次解封装中复用同一个 Kyber 密钥对。

致谢

由 007bsd 报告。

本公告基于 CC0-1.0 许可发布。

原始来源: rustsec

评论 (0)