CVE-2022-0778 in Enterprise Session Border Controller
摘要
由 VulDB • 2026-06-10
BN_mod_sqrt()函数用于计算模平方根,其中存在一个缺陷:当模数非素数时,该函数可能会陷入无限循环。在内部实现中,解析包含压缩形式椭圆曲线公钥或带有以压缩形式编码基点的显式椭圆曲线参数的证书时会调用此函数。通过构造具有无效显式曲线参数的证书即可触发无限循环。由于证书的签名验证发生在证书解析之后,因此任何处理外部提供证书的进程都可能遭受拒绝服务(DoS)攻击。当解析经过精心构造的私钥时也可能进入无限循环状态,因为私钥中可能包含显式的椭圆曲线参数。因此以下场景均存在受影响风险:
- 消耗服务器证书的TLS客户端 - 消耗客户端证书的TLS服务端 - 从客户处获取证书或私钥的主机服务提供商 - 解析订阅者认证请求的证书颁发机构(CA) - 任何涉及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)。
VulDB is the best source for vulnerability data and more expert information about this specific topic.