CVE-2022-0778
解析证书时可触发的 BN_mod_sqrt() 无限循环
- 已发布
- 2022年3月15日
- 已更新
- 2026年5月22日
- 分配 CNA
- openssl
- 观察到的证据
- 2026年8月8日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H高 · 未来 30 天
- 百分位
- 99.4%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
BN_mod_sqrt() 函数用于计算模平方根,其中包含一个缺陷,对于非素数模数,它可能导致该函数无限循环。在内部,该函数在解析包含压缩格式的椭圆曲线公钥或带有压缩格式基点的显式椭圆曲线参数的证书时使用。通过构造一个具有无效显式曲线参数的证书,可以触发无限循环。由于证书解析发生在证书签名验证之前,任何解析外部提供的证书的进程都可能因此遭受拒绝服务攻击。在解析特制的私钥时也可能触发无限循环,因为这些私钥可以包含显式椭圆曲线参数。因此,受影响的情况包括: - 使用服务器证书的 TLS 客户端 - 使用客户端证书的 TLS 服务器 - 从客户处获取证书或私钥的主机托管提供商 - 解析来自申请者的证书请求的证书颁发机构 - 其他任何解析 ASN.1 椭圆曲线参数的程序 此外,任何其他使用 BN_mod_sqrt() 且攻击者能够控制参数值的应用程序也容易受到此 DoS 问题的影响。在 OpenSSL 1.0.2 版本中,公钥在证书的初始解析期间不会被解析,这使得触发无限循环稍微困难一些。然而,任何需要从证书中获取公钥的操作都会触发无限循环。特别是,攻击者可以使用自签名证书在验证证书签名期间触发该循环。 此问题影响 OpenSSL 1.0.2、1.1.1 和 3.0 版本。该问题已在 2022 年 3 月 15 日发布的 1.1.1n 和 3.0.2 版本中得到解决。已在 OpenSSL 3.0.2 中修复(受影响版本:3.0.0、3.0.1)。已在 OpenSSL 1.1.1n 中修复(受影响版本:1.1.1-1.1.1m)。已在 OpenSSL 1.0.2zd 中修复(受影响版本:1.0.2-1.0.2zc)。
来源
5CVE-2022-0778 的 P12 和 PEM 格式概念验证
CVE-2022-0778 的概念验证漏洞利用,通过构造包含非素数曲线参数的 X.509 证书,演示 OpenSSL 中 BN_mod_sqrt 的无限循环,从而实现拒绝服务攻击。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。