title: Excessive time spent checking DH q parameter value
description: 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.
problem types: Excessive Iteration
affected:
{
defaultStatus: unaffected
product: OpenSSL
vendor: OpenSSL
versions:
lessThan: 3.1.2, status: affected, version: 3.1.0, versionType: semver
lessThan: 3.0.10, status: affected, version: 3.0.0, versionType: semver
lessThan: 1.1.1v, status: affected, version: 1.1.1, versionType: custom
lessThan: 1.0.2zi, status: affected, version: 1.0.2, versionType: custom
}
metrics:
format: other
other: [
content: {'text': 'Low'}
type: https://www.openssl.org/policies/secpolicy.html
]