OpenSSL: Loop with Unreachable Exit Condition
CVE-2022-0778 is a high-severity loop with unreachable exit condition vulnerability in OpenSSL, with a CVSS 3.1 base score of 7.5 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. Affected OpenSSL versions: Fixed in OpenSSL 3.0.2 (Affected 3.0.0,3.0.1); Fixed in OpenSSL 1.1.1n (Affected 1.1.1-1.1.1m); Fixed in OpenSSL 1.0.2zd (Affected 1.0.2-1.0.2zc). The record does not name a fixed version, so check the vendor advisory. There is no confirmed exploitation so far. EPSS estimates a 73.2% chance of exploitation within 30 days, which is in the top 0.53% of all scored CVEs.
Exploitation in the next 30 days is more likely than not, according to EPSS.
What to do
- Update BFCClient to V2.17 or a later version.
- Update Industrial Edge - OPC UA Connector to V1.7.0.0 or a later version.
- Update Industrial Edge - SIMATIC S7 Connector App to V1.7.0.0 or a later version.
- Read the advisory on psirt.global.sonicwall.com for workarounds and exact fixed builds.
- Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.
Affected products and versions
Version data comes from the organisation that assigned the CVE; 35 further products are omitted here. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- NetworkCan be exploited remotely over a network, including the internet.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- NoneNo account or login is needed.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- NoneNo data is disclosed.
- Integrity
- NoneNothing can be modified.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H. Scored by NVD.
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 3.1 | 7.5 | High | NVD |
| CVSS 3.1 | 7.5 | High | CISA (ADP) |
| CVSS 2.0 | 5.0 | Medium | NVD |
Official description
The BN_mod_sqrt() function, which computes a modular square root, contains a bug that can cause it to loop forever for non-prime moduli. Internally this function is used when parsing certificates that contain elliptic curve public keys in compressed form or explicit elliptic curve parameters with a base point encoded in compressed form. It is possible to trigger the infinite loop by crafting a certificate that has invalid explicit curve parameters. Since certificate parsing happens prior to verification of the certificate signature, any process that parses an externally supplied certificate may thus be subject to a denial of service attack. The infinite loop can also be reached when parsing crafted private keys as they can contain explicit elliptic curve parameters. Thus vulnerable situations include: - TLS clients consuming server certificates - TLS servers consuming client certificates - Hosting providers taking certificates or private keys from customers - Certificate authorities parsing certification requests from subscribers - Anything else which parses ASN.1 elliptic curve parameters Also any other applications that use the BN_mod_sqrt() where the attacker can control the parameter values are vulnerable to this DoS issue. In the OpenSSL 1.0.2 version the public key is not parsed during initial parsing of the certificate which makes it slightly harder to trigger the infinite loop. However any operation which requires the public key from the certificate will trigger the infinite loop. In particular the attacker can use a self-signed certificate to trigger the loop during verification of the certificate signature. This issue affects OpenSSL versions 1.0.2, 1.1.1 and 3.0. It was addressed in the releases of 1.1.1n and 3.0.2 on the 15th March 2022. Fixed in OpenSSL 3.0.2 (Affected 3.0.0,3.0.1). Fixed in OpenSSL 1.1.1n (Affected 1.1.1-1.1.1m). Fixed in OpenSSL 1.0.2zd (Affected 1.0.2-1.0.2zc).
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Loop with Unreachable Exit Condition
The product contains an iteration or loop with an exit condition that cannot be reached, i.e., an infinite loop.
More Loop with Unreachable Exit Condition vulnerabilities (CWE-835)
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: partial).
- Record last changed materially (score, affected products, status or references).
References
Advisories
Third-party and government advisories
- packetstormsecurity.com/files/167344/OpenSSL-1.0.2-1.1.1-3.0-BN_mod_sqrt-Infinite-Loop.htmlThird Party Advisory, VDB Entry
- seclists.org/fulldisclosure/2022/May/33Mailing List, Third Party Advisory
- seclists.org/fulldisclosure/2022/May/35Mailing List, Third Party Advisory
- seclists.org/fulldisclosure/2022/May/38Mailing List, Third Party Advisory
- cert-portal.siemens.com/productcert/pdf/ssa-712929.pdfThird Party Advisory
- lists.debian.org/debian-lts-announce/2022/03/msg00023.htmlMailing List, Third Party Advisory
- lists.debian.org/debian-lts-announce/2022/03/msg00024.htmlMailing List, Third Party Advisory
- security.gentoo.org/glsa/202210-02Third Party Advisory
- security.netapp.com/advisory/ntap-20220321-0002/Third Party Advisory
- security.netapp.com/advisory/ntap-20220429-0005/Third Party Advisory
- support.apple.com/kb/HT213255Third Party Advisory
- support.apple.com/kb/HT213256Third Party Advisory
- support.apple.com/kb/HT213257Third Party Advisory
- debian.org/security/2022/dsa-5103Third Party Advisory
- oracle.com/security-alerts/cpuapr2022.htmlThird Party Advisory
Other references
- git.openssl.org/gitweb/?p=openssl.git%3Ba=commitdiff%3Bh=3118eb64934499d93db3230748a452351d1d9a65
- git.openssl.org/gitweb/?p=openssl.git%3Ba=commitdiff%3Bh=380085481c64de749a6dd25cdf0bcf4360b30f83
- git.openssl.org/gitweb/?p=openssl.git%3Ba=commitdiff%3Bh=a466912611aa6cbdf550cd10601390e587451246
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/323SNN6ZX7PRJJWP2BUA…
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/GDB3GQVJPXJE7X5C5JN6…
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/W6K3PR542DXWLEFFMFID…
- security.netapp.com/advisory/ntap-20240621-0006/
- cert-portal.siemens.com/productcert/html/ssa-019200.html
- cert-portal.siemens.com/productcert/html/ssa-028723.html
- cert-portal.siemens.com/productcert/html/ssa-108696.html
- cert-portal.siemens.com/productcert/html/ssa-398330.html
- cert-portal.siemens.com/productcert/html/ssa-712929.html
Other vulnerabilities in OpenSSL
- 7.5 High severity
- 7.5 High severity
- 8.2 High severity
- 7.5 High severity
- 7.5 High severity
- 9.1 Critical severity
Recent Loop with Unreachable Exit Condition vulnerabilities
- 7.5 High severity
- 7.5 High severity
- 7.5 High severity
- 7.5 High severity
- 7.5 High severity
Spotted an error? Tell us.