CVE-2025-47934 - 欺骗 OpenPGP.js 签名验证 — Codean Labs

主要观点:Codean Labs 发现 OpenPGP.js 的 CVE-2025-47934 漏洞,攻击者可利用该漏洞通过目标作者的有效签名“伪造”任意签名,包括加密消息,风险被认为是关键的。文中解释了漏洞原理,提供了概念验证代码,并说明了解决方案和时间线。
关键信息

  • OpenPGP.js 实现了 RFC 9580 中的 OpenPGP 标准,可在 JavaScript 中进行消息加密、签名和密钥管理。
  • 存在一个无效的数据包列表,OpenPGP.js 会接受其为有效消息,并返回错误的签名数据。
  • 对于加密消息,解密和验证的高级 API openpgp.decrypt()存在同样的漏洞。
  • 提供了生成恶意消息的 Python 脚本和概念验证代码。
    重要细节
  • OpenPGP.js 解析消息时,在 openpgp.readMessage()openpgp.verify() 等方法的执行过程中,对数据包的处理逻辑存在缺陷,导致漏洞出现。
  • 修复该漏洞的措施是实施严格的语法验证,以确保早期拒绝无效消息。
  • 时间线方面,2025 年 5 月 6 日向 OpenPGP.js Bug Bounty 程序提交报告,5 月 12 日提供更多恶意有效负载的信息,5 月 13 日维护者确认发现并开始协调修复,5 月 19 日分配 CVE-2025-47934 并发布咨询和修复,6 月 10 日发布博客文章。建议更新 OpenPGP.js 到 v5.11.3 或 v6.1.1 以缓解漏洞,使用 Mailvelope 或其他间接使用 OpenPGP.js 的软件时也应更新,若无法直接更新,可参考维护者的咨询获取替代解决方法。
阅读 12
0 条评论