CVE-2022-3602: OpenSSL3 CVE-2022-3602 CVE-2022-3786 vulnerabilities
A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Note that this occurs after certificate chain signature verification and requires either a CA to have signed the malicious certificate or for the application to continue certificate verification despite failure to construct a path to a trusted issuer. An attacker can craft a malicious email address to overflow four attacker-controlled bytes on the stack. This buffer overflow could result in a crash (causing a denial of service) or potentially remote code execution.
Many platforms implement stack overflow protections which would mitigate against the risk of remote code execution. The risk may be further mitigated based on stack layout for any given platform/compiler.
Pre-announcements of CVE-2022-3602 described this issue as CRITICAL. Further analysis based on some of the mitigating factors described above have led this to be downgraded to HIGH. Users are still encouraged to upgrade to a new version as soon as possible.
In a TLS client, this can be triggered by connecting to a malicious server. In a TLS server, this can be triggered if the server requests client authentication and a malicious client connects.
Other sources
A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Note that this occurs after certificate chain signature verification and requires either a CA to have signed the malicious certificate or for the application to continue certificate verification despite failure to construct a path to a trusted issuer. An attacker can craft a malicious email address to overflow four attacker-controlled bytes on the stack. This buffer overflow could result in a crash (causing a denial of service) or potentially remote code execution.
All versions of the v18.x and v19.x releases lines.
— Node.Js
As per upstream report:
A buffer overrun can be triggered by sending an X.509 certificate with a specially crafted email address field to a vulnerable client or server. This can result in an overflow of four attacker-controlled bytes on the stack. This could result in a crash (causing a denial of service) or possibly result in remote code execution.
The most common situation where this can be triggered is when a server requests client authentication after a malicious client connects. The converse of a client connecting to a malicious server is also believed to be vulnerable in the same manner.
OpenSSL versions 3.0.0 to 3.0.6 are vulnerable to this attack.
OpenSSL 3.0 users should upgrade to OpenSSL 3.0.7.
OpenSSL 1.1.1 and 1.0.2 are not affected by this issue.
— Red Hat
OpenSSL is vulnerable to a stack-based buffer overflow, caused by improper bounds checking during X.509 certificate verification. By using a specially-crafted email address, a remote attacker could overflow a buffer and execute arbitrary code or cause the application to crash.
— IBM
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rust/openssl-srcto a version that resolves this vulnerability.Fixed in 300.0.11 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 18.12.1 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 19.0.1 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.0.20-1~deb12u2Fixed in 3.0.22-1~deb12u2Fixed in 3.5.7-1~deb13u2Fixed in 3.5.7-1~deb13u3Fixed in 3.6.5-1 - Upgrade
Upgrade
alpine/nodejsto a version that resolves this vulnerability.Fixed in 18.12.1-r0 - Upgrade
Upgrade
alpine/opensslto a version that resolves this vulnerability.Fixed in 3.0.7-r0 - Upgrade
Upgrade
alpine/openssl3to a version that resolves this vulnerability.Fixed in 3.0.7-r0 - Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 3.0.7-1 - Upgrade
Upgrade
redhat/opensslto a version that resolves this vulnerability.Fixed in 3.0.7 - Upgrade
Upgrade
OpenSSLto a version that resolves this vulnerability.Fixed in 3.0.7
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the severity of CVE-2022-3602?
The severity of CVE-2022-3602 is critical with a CVSS score of 9.8.
Which software is affected by CVE-2022-3602?
CVE-2022-3602 affects the rust/openssl-src package with versions between 300.0.0 and 300.0.11.
How can CVE-2022-3602 be exploited?
CVE-2022-3602 can be exploited by triggering a buffer overrun in X.509 certificate verification during name constraint checking.
What is the Common Weakness Enumeration (CWE) ID for CVE-2022-3602?
CVE-2022-3602 has a Common Weakness Enumeration (CWE) ID of 119, 120, and 787.
Where can I find more information about CVE-2022-3602?
More information about CVE-2022-3602 can be found in the following references: [GitHub Advisory](https://github.com/rustsec/advisory-db/pull/1452), [Commit on GitHub](https://github.com/alexcrichton/openssl-src-rs/commit/4a31c14f31e1a08c18893a37e304dd1dd4b7daa3), [RustSec Advisory](https://rustsec.org/advisories/RUSTSEC-2022-0064.html).