CVE-2024-4603: Excessive time spent checking DSA keys and parameters
Excessive time spent checking DSA keys and parameters
Other sources
Issue summary: Checking excessively long DSA keys or parameters may be very slow.
Impact summary: Applications that use the functions EVPPKEYparamcheck() or EVPPKEYpubliccheck() to check a DSA public key or DSA 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 functions EVPPKEYparamcheck() or EVPPKEYpubliccheck() perform various checks on DSA parameters. Some of those computations take a long time if the modulus (p parameter) is too large.
Trying to use a very large modulus is slow and OpenSSL will not allow using public keys with a modulus which is over 10,000 bits in length for signature verification. However the key and parameter check functions do not limit the modulus size when performing the checks.
An application that calls EVPPKEYparamcheck() or EVPPKEYpubliccheck() and supplies a key or parameters obtained from an untrusted source could be vulnerable to a Denial of Service attack.
These functions are not called by OpenSSL itself on untrusted DSA keys so only applications that directly call these functions may be vulnerable.
Also vulnerable are the OpenSSL pkey 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 affected by this issue.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/opensslto a version that resolves this vulnerability.Fixed in 1.1.1w-0+deb11u1Fixed in 1.1.1n-0+deb11u5Fixed in 3.0.14-1~deb12u1Fixed in 3.0.14-1~deb12u2Fixed in 3.3.2-1 - Upgrade
Upgrade
redhat/OpenSSLto a version that resolves this vulnerability.Fixed in 3.0.14 - Upgrade
Upgrade
redhat/OpenSSLto a version that resolves this vulnerability.Fixed in 3.1.6 - Upgrade
Upgrade
redhat/OpenSSLto a version that resolves this vulnerability.Fixed in 3.2.2 - Upgrade
Upgrade
redhat/OpenSSLto a version that resolves this vulnerability.Fixed in 3.3.1 - Compensating control
For applications using EVP_PKEY_param_check() or EVP_PKEY_public_check() (including OpenSSL pkey/pkeyparam with the -check option), do not accept DSA keys/parameters from untrusted sources; only pass keys/parameters you trust into these checks to avoid DoS via long delays from excessive DSA modulus sizes.
Event History
Frequently Asked Questions
What is the severity of CVE-2024-4603?
The severity of CVE-2024-4603 is classified as moderate due to the potential for application delays when validating excessive DSA keys or parameters.
How do I fix CVE-2024-4603?
To fix CVE-2024-4603, update Openssl to versions 1.1.1w-0+deb11u1, 1.1.1n-0+deb11u5, or any of the remedied versions from Red Hat.
What applications are affected by CVE-2024-4603?
Applications that use the functions EVP_PKEY_param_check() or EVP_PKEY_public_check() from the OpenSSL library are affected by CVE-2024-4603.
How can I identify if my system is vulnerable to CVE-2024-4603?
You can identify if your system is vulnerable to CVE-2024-4603 by checking if you are using OpenSSL versions prior to the patched releases mentioned in the vulnerability.
What are the performance implications of CVE-2024-4603?
CVE-2024-4603 may lead to significantly long delays in applications when processing very long DSA keys or parameters.