Forge JavaScript库受签名验证漏洞影响
漏洞编号 VU#521113 原始发布日期:2025-11-25 | 最后修订日期:2025-11-25
概述
Forge JavaScript库提供与TLS相关的加密实用程序。已发现一个漏洞,允许通过精心构造的ASN.1结构(特别是在消息认证码数据等字段中)绕过签名验证。建议node-forge软件包的用户及下游消费者及时更新到已修补的版本。
描述
Forge(也可作为node-forge npm包使用)提供一系列加密功能,包括证书生成、消息签名和验证以及加密和解密。这些功能依赖于库的ASN.1解析和验证例程。
在asn1.validate函数中发现一个缺陷,该缺陷允许被篡改的ASN.1数据即使在密码学上不正确也能通过验证。通过在某些需要递归验证的ASN.1字段中嵌入自定义选项,攻击者可以构造出对Forge验证例程看似有效的数据。一项使用被篡改的PKCS#12 MAC数据的概念验证演示了如何通过伪造的有效载荷绕过签名验证。
报告此问题的研究人员描述了该漏洞的潜在影响如下:
因此,依赖node-forge来强制ASN.1衍生加密协议(包括X.509证书、PKCS#7消息和PKCS#12存档)结构和完整性的应用程序可能会被欺骗,从而成功验证格式错误的数据。
虽然不同环境在实际暴露程度上会有所不同,但底层的验证绕过在技术上具有重要意义。该软件包被广泛使用,并且已发布修复程序。已修补的版本1.3.2现已可用,其中包含在tests/security/cve-2025-12816.js中更新的测试用例,说明了更正后的行为。
影响
能够提供精心构造的ASN.1数据的攻击者,可能会导致依赖Forge进行验证的应用程序接受伪造或修改的数据为合法数据。这可能允许身份验证绕过、篡改已签名的数据或滥用证书相关功能。在加密验证在信任决策中起核心作用的环境中,潜在影响可能很严重。
解决方案
更新到Forge 1.3.2或更高版本。该修复程序可在拉取请求#1124中找到。开发人员应将更新后的版本集成到他们的项目中,并通过正常的发布渠道分发更新。
致谢
感谢Palo Alto Networks的Hunter Wodzenski负责任地报告了此问题。本文档由Vijay Sarvepalli撰写。
供应商信息
521113
| 供应商 | 状态 | 通知日期 | 更新日期 | 声明日期 | 声明 |
|---|---|---|---|---|---|
| Digital Bazaar | 受影响 | 2025-10-13 | 2025-11-25 | 2025年11月20日 | CVE-2025-12816 受影响 我们尚未收到供应商的声明。 |
参考资料
- https://github.com/digitalbazaar/forge/
- https://www.npmjs.com/package/node-forge
- https://github.com/digitalbazaar/forge/pull/1116
- https://www.cve.org/CVERecord?id=CVE-2025-32988
其他信息
- CVE ID: CVE-2025-12816
- API URL: VINCE JSON | CSAF
- 公开日期: 2025-11-25
- 首次发布日期: 2025-11-25
- 最后更新日期: 2025-11-25 19:41 UTC
- 文档修订版本: 3