CVE-2026-33896 是 node-forge 库中 pki.verifyCertificateChain() 函数存在的一个安全漏洞,该漏洞源于其未强制执行 RFC 5280 basicConstraints 要求,当中间证书缺少 basicConstraints 和 keyUsage 扩展时,会导致验证绕过。攻击者可以利用此漏洞,使任何叶子证书(没有这些扩展)充当 CA 并签名其他证书,从而欺骗 node-forge 认为其有效。受影响的版本包括 1.4.0 之前的 node-forge 版本。此漏洞已在 1.4.0 版本中修复。
forge 中的 CVE-2026-33896 允许缺少 basicConstraints 和 keyUsage 扩展名的叶证书充当证书颁发机构 (CA)。当中间证书缺少这些扩展名时,pki.verifyCertificateChain() 函数不会强制执行 RFC 5280 的基本约束。这意味着即使不是设计为 CA 的叶证书,也可以对其他证书进行签名,并且 node-forge 会将它们接受为有效。这会损害信任链的完整性,并可能导致中间人攻击或伪造证书的创建。
攻击者可以通过创建缺少 basicConstraints 和 keyUsage 扩展名的叶证书来利用此漏洞。然后,攻击者可以使用此证书对一个类似于合法证书的恶意证书进行签名。如果应用程序使用 node-forge 来验证证书链并且没有更新,它将接受恶意证书作为有效,从而允许攻击者拦截和修改网络流量。
Applications built on Node.js that rely on node-forge for certificate validation are at risk. This includes applications handling TLS connections, verifying digital signatures, or performing other certificate-based authentication. Specifically, applications that accept certificates from untrusted sources or have weak certificate validation policies are particularly vulnerable.
• nodejs:
Get-Process | Where-Object {$_.ProcessName -match 'node'}• nodejs: Check for node-forge versions prior to 1.4.0 using npm list node-forge.
• nodejs: Review application code for calls to pki.verifyCertificateChain() and assess the context of certificate validation.
• generic web: Monitor server logs for errors related to certificate validation or unexpected certificate chains.
disclosure
漏洞利用状态
EPSS
0.02% (6% 百分位)
CISA SSVC
解决方案是升级到 forge 的 1.4.0 或更高版本。此版本通过正确强制执行 RFC 5280 的基本约束来修复此漏洞。如果无法立即升级,请仔细检查应用程序中使用的所有证书,并确保中间证书已正确配置 basicConstraints 和 keyUsage 扩展名。考虑在应用程序中实施额外的验证,以在信任证书之前验证其有效性。
升级 Forge 库至 1.4.0 或更高版本。此版本修复了证书链验证中的 basicConstraints 遗漏漏洞。升级确保符合 RFC 5280 的要求。
漏洞分析和关键警报直接发送到您的邮箱。
RFC 5280 是定义 X.509 证书验证要求的标准,包括基本约束和密钥用法。
这些扩展名指示证书是否打算用作 CA 或叶证书,以及可以使用相关私钥执行的操作。
仔细检查应用程序中使用的所有证书,并确保中间证书已正确配置 basicConstraints 和 keyUsage 扩展名。在应用程序中实施额外的验证。
是的,有几种在线和命令行工具可以检查证书的扩展名。搜索 'X.509 证书查看器' 或 'openssl certificate info'。
如果未更新到 1.4.0 或更高版本,则使用 node-forge 验证证书链的任何应用程序都可能存在漏洞。
CVSS 向量