主要观点: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 的软件时也应更新,若无法直接更新,可参考维护者的咨询获取替代解决方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。