Issue summary: Checking excessively long DH keys or parameters may be very slow.
Impact summary: Applications that use the functions DH_check(), DH_check_ex() or EVP_PKEY_param_check() to check a DH key or DH parameters may experience long delays. Where the key or parameters that are being checked have been obtained from an untrusted source this may lead to a Denial of Service.
The function DH_check() performs various checks on DH parameters. After fixing CVE-2023-3446 it was discovered that a large q parameter value can also trigger an overly long computation during some of these checks. A correct q value, if present, cannot be larger than the modulus p parameter, thus it is unnecessary to perform these checks if q is larger than p.
An application that calls DH_check() and supplies a key or parameters obtained from an untrusted source could be vulnerable to a Denial of Service attack.
The function DH_check() is itself called by a number of other OpenSSL functions. An application calling any of those other functions may similarly be affected. The other functions affected by this are DH_check_ex() and EVP_PKEY_param_check().
Also vulnerable are the OpenSSL dhparam and pkeyparam command line applications when using the "-check" option.
The OpenSSL SSL/TLS implementation is not affected by this issue.
The OpenSSL 3.0 and 3.1 FIPS providers are not affected by this issue.
{
"cna_assigner": "openssl",
"cwe_ids": [
"CWE-606"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/3xxx/CVE-2023-3817.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"introduced": "3.1.0"
},
{
"fixed": "3.1.2"
},
{
"introduced": "3.0.0"
},
{
"fixed": "3.0.10"
},
{
"introduced": "1.1.1"
},
{
"fixed": "1.1.1v"
},
{
"introduced": "1.0.2"
},
{
"fixed": "1.0.2zi"
}
],
"source": "AFFECTED_FIELD"
}
]
}{
"cpe": [
"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2:-:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2a:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2b:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2c:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2d:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2e:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2f:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2g:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2h:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2i:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2j:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2k:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2l:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2m:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2n:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2o:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2p:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2q:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2r:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2s:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2t:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2u:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2v:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2w:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2x:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2y:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2za:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2zb:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2zc:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2zd:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2ze:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2zf:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2zg:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2zh:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2:beta1:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2:beta2:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.0.2:beta3:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:-:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1a:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1b:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1c:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1d:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1e:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1f:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1g:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1h:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1i:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1j:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1k:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1l:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1m:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1n:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1o:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1p:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1q:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1r:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1s:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1t:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1u:*:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre1:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre2:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre3:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre4:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre5:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre6:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre7:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre8:*:*:*:*:*:*",
"cpe:2.3:a:openssl:openssl:1.1.1:pre9:*:*:*:*:*:*"
],
"extracted_events": [
{
"introduced": "3.0.0"
},
{
"fixed": "3.0.10"
},
{
"introduced": "3.1.0"
},
{
"fixed": "3.1.2"
},
{
"introduced": "1.0.2-NA"
},
{
"last_affected": "1.0.2-NA"
},
{
"introduced": "1.0.2a"
},
{
"last_affected": "1.0.2a"
},
{
"introduced": "1.0.2b"
},
{
"last_affected": "1.0.2b"
},
{
"introduced": "1.0.2c"
},
{
"last_affected": "1.0.2c"
},
{
"introduced": "1.0.2d"
},
{
"last_affected": "1.0.2d"
},
{
"introduced": "1.0.2e"
},
{
"last_affected": "1.0.2e"
},
{
"introduced": "1.0.2f"
},
{
"last_affected": "1.0.2f"
},
{
"introduced": "1.0.2g"
},
{
"last_affected": "1.0.2g"
},
{
"introduced": "1.0.2h"
},
{
"last_affected": "1.0.2h"
},
{
"introduced": "1.0.2i"
},
{
"last_affected": "1.0.2i"
},
{
"introduced": "1.0.2j"
},
{
"last_affected": "1.0.2j"
},
{
"introduced": "1.0.2k"
},
{
"last_affected": "1.0.2k"
},
{
"introduced": "1.0.2l"
},
{
"last_affected": "1.0.2l"
},
{
"introduced": "1.0.2m"
},
{
"last_affected": "1.0.2m"
},
{
"introduced": "1.0.2n"
},
{
"last_affected": "1.0.2n"
},
{
"introduced": "1.0.2o"
},
{
"last_affected": "1.0.2o"
},
{
"introduced": "1.0.2p"
},
{
"last_affected": "1.0.2p"
},
{
"introduced": "1.0.2q"
},
{
"last_affected": "1.0.2q"
},
{
"introduced": "1.0.2r"
},
{
"last_affected": "1.0.2r"
},
{
"introduced": "1.0.2s"
},
{
"last_affected": "1.0.2s"
},
{
"introduced": "1.0.2t"
},
{
"last_affected": "1.0.2t"
},
{
"introduced": "1.0.2u"
},
{
"last_affected": "1.0.2u"
},
{
"introduced": "1.0.2v"
},
{
"last_affected": "1.0.2v"
},
{
"introduced": "1.0.2w"
},
{
"last_affected": "1.0.2w"
},
{
"introduced": "1.0.2x"
},
{
"last_affected": "1.0.2x"
},
{
"introduced": "1.0.2y"
},
{
"last_affected": "1.0.2y"
},
{
"introduced": "1.0.2za"
},
{
"last_affected": "1.0.2za"
},
{
"introduced": "1.0.2zb"
},
{
"last_affected": "1.0.2zb"
},
{
"introduced": "1.0.2zc"
},
{
"last_affected": "1.0.2zc"
},
{
"introduced": "1.0.2zd"
},
{
"last_affected": "1.0.2zd"
},
{
"introduced": "1.0.2ze"
},
{
"last_affected": "1.0.2ze"
},
{
"introduced": "1.0.2zf"
},
{
"last_affected": "1.0.2zf"
},
{
"introduced": "1.0.2zg"
},
{
"last_affected": "1.0.2zg"
},
{
"introduced": "1.0.2zh"
},
{
"last_affected": "1.0.2zh"
},
{
"introduced": "1.0.2-beta1"
},
{
"last_affected": "1.0.2-beta1"
},
{
"introduced": "1.0.2-beta2"
},
{
"last_affected": "1.0.2-beta2"
},
{
"introduced": "1.0.2-beta3"
},
{
"last_affected": "1.0.2-beta3"
},
{
"introduced": "1.1.1-NA"
},
{
"last_affected": "1.1.1-NA"
},
{
"introduced": "1.1.1a"
},
{
"last_affected": "1.1.1a"
},
{
"introduced": "1.1.1b"
},
{
"last_affected": "1.1.1b"
},
{
"introduced": "1.1.1c"
},
{
"last_affected": "1.1.1c"
},
{
"introduced": "1.1.1d"
},
{
"last_affected": "1.1.1d"
},
{
"introduced": "1.1.1e"
},
{
"last_affected": "1.1.1e"
},
{
"introduced": "1.1.1f"
},
{
"last_affected": "1.1.1f"
},
{
"introduced": "1.1.1g"
},
{
"last_affected": "1.1.1g"
},
{
"introduced": "1.1.1h"
},
{
"last_affected": "1.1.1h"
},
{
"introduced": "1.1.1i"
},
{
"last_affected": "1.1.1i"
},
{
"introduced": "1.1.1j"
},
{
"last_affected": "1.1.1j"
},
{
"introduced": "1.1.1k"
},
{
"last_affected": "1.1.1k"
},
{
"introduced": "1.1.1l"
},
{
"last_affected": "1.1.1l"
},
{
"introduced": "1.1.1m"
},
{
"last_affected": "1.1.1m"
},
{
"introduced": "1.1.1n"
},
{
"last_affected": "1.1.1n"
},
{
"introduced": "1.1.1o"
},
{
"last_affected": "1.1.1o"
},
{
"introduced": "1.1.1p"
},
{
"last_affected": "1.1.1p"
},
{
"introduced": "1.1.1q"
},
{
"last_affected": "1.1.1q"
},
{
"introduced": "1.1.1r"
},
{
"last_affected": "1.1.1r"
},
{
"introduced": "1.1.1s"
},
{
"last_affected": "1.1.1s"
},
{
"introduced": "1.1.1t"
},
{
"last_affected": "1.1.1t"
},
{
"introduced": "1.1.1u"
},
{
"last_affected": "1.1.1u"
},
{
"introduced": "1.1.1-pre1"
},
{
"last_affected": "1.1.1-pre1"
},
{
"introduced": "1.1.1-pre2"
},
{
"last_affected": "1.1.1-pre2"
},
{
"introduced": "1.1.1-pre3"
},
{
"last_affected": "1.1.1-pre3"
},
{
"introduced": "1.1.1-pre4"
},
{
"last_affected": "1.1.1-pre4"
},
{
"introduced": "1.1.1-pre5"
},
{
"last_affected": "1.1.1-pre5"
},
{
"introduced": "1.1.1-pre6"
},
{
"last_affected": "1.1.1-pre6"
},
{
"introduced": "1.1.1-pre7"
},
{
"last_affected": "1.1.1-pre7"
},
{
"introduced": "1.1.1-pre8"
},
{
"last_affected": "1.1.1-pre8"
},
{
"introduced": "1.1.1-pre9"
},
{
"last_affected": "1.1.1-pre9"
}
],
"source": [
"CPE_RANGE",
"CPE_STRING"
]
}