Cloudanix VulnDB

CVE-2024-4603

Medium · 5.3

CVSS

5.3

EPSS

1.1%

Published

May 16, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A problem in checking very large security keys can make certain verification steps take a long time, potentially slowing or disrupting services that accept keys from outside sources.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The EVP_PKEY_param_check and EVP_PKEY_public_check functions perform unbounded modular arithmetic on DSA p parameters, allowing an attacker-supplied modulus larger than 10000 bits to trigger prolonged computation and CPU exhaustion.

Why it matters to the business

Applications that directly validate DSA keys or parameters from external sources can experience extended processing delays, resulting in service degradation or temporary unavailability without affecting core TLS operations.

How an attack unfolds

An attacker crafts a DSA key or parameter set containing an excessively large modulus and supplies it to an application that invokes EVP_PKEY_param_check or EVP_PKEY_public_check on untrusted input; the check routines consume significant CPU time before returning, producing a denial-of-service condition.

How to fix it

Upgrade OpenSSL to the version containing commit 3559e868e58005d15c6013a0c1fd832e51c73397. Applications should avoid calling the affected check functions on untrusted input until patched; command-line usage of openssl pkey -check and pkeyparam -check should be restricted to trusted material.

How to confirm the fix worked

Confirm the installed OpenSSL library reports a version that includes commit 3559e868e58005d15c6013a0c1fd832e51c73397; recompile dependent applications against the fixed library and verify that large-DSA check operations complete promptly or are rejected early.

Typical attack path

  1. Identify an application that calls EVP_PKEY_param_check or EVP_PKEY_public_check on externally supplied DSA material
  2. Generate a DSA parameter structure with a modulus exceeding 10000 bits
  3. Deliver the malformed key or parameters through the application's input channel
  4. Trigger the check function and observe sustained high CPU usage on the target process

How to detect it

Review application and system logs for unusually long execution times or high CPU attributed to DSA key or parameter validation routines; correlate with inbound network traffic containing large ASN.1 structures.

What your security team should do

  • Apply the patch containing commit 3559e868e58005d15c6013a0c1fd832e51c73397 to all OpenSSL 3.0 and 3.1 deployments
  • Audit source code for direct calls to EVP_PKEY_param_check and EVP_PKEY_public_check on untrusted data
  • Disable or sandbox the openssl pkey -check and pkeyparam -check options in environments that process external keys
  • Monitor CPU utilization on processes that perform DSA parameter validation

The record

Issue summary: Checking excessively long DSA keys or parameters may be very slow. Impact summary: Applications that use the functions EVP_PKEY_param_check() or EVP_PKEY_public_check() 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 EVP_PKEY_param_check() or EVP_PKEY_public_check() 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 EVP_PKEY_param_check() or EVP_PKEY_public_check() 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.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:9 openssl 0 1:3.2.2-6.el9_5
AlmaLinux:9 openssl-devel 0 1:3.2.2-6.el9_5
AlmaLinux:9 openssl-libs 0 1:3.2.2-6.el9_5
AlmaLinux:9 openssl-perl 0 1:3.2.2-6.el9_5
Alpine:v3.17 openssl 0 3.0.13-r0
Alpine:v3.18 openssl 0 3.1.5-r0
Alpine:v3.19 openssl 0 3.1.5-r0
Alpine:v3.20 openssl 0 3.3.0-r2
Alpine:v3.21 openssl 0 3.3.0-r2
Alpine:v3.22 openssl 0 3.3.0-r2
Chainguard libcrypto3 0 3.3.0-r8
Chainguard libssl3 0 3.3.0-r8
Chainguard openssl 0 3.3.0-r8
Chainguard openssl-config 0 3.3.0-r8
Chainguard openssl-dbg 0 3.3.0-r8
Chainguard openssl-dev 0 3.3.0-r8
Chainguard openssl-doc 0 3.3.0-r8
Chainguard openssl-engine-afalg 0 3.3.0-r8
Chainguard openssl-engine-capi 0 3.3.0-r8
Chainguard openssl-engine-loader-attic 0 3.3.0-r8
Chainguard openssl-engine-padlock 0 3.3.0-r8
Chainguard openssl-provider-fips 0 3.0.9-r2
Chainguard openssl-provider-fips 0 3.4.0-r4
Chainguard openssl-provider-fips-3.1.2 0 3.1.2-r3
Chainguard openssl-provider-fips-3.1.2-dbg 0 3.1.2-r3
Chainguard openssl-provider-legacy 0 3.3.0-r8
Debian:12 openssl 0 3.0.14-1~deb12u1
Debian:13 openssl 0 3.2.2-1
Mageia:9 openssl 0 3.0.13-1.1.mga9
Mageia:9 quictls 0 3.0.14-1.1.mga9
Red Hat:enterprise_linux:9::appstream openssl 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::appstream openssl-debuginfo 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::appstream openssl-debugsource 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::appstream openssl-devel 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::appstream openssl-libs 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::appstream openssl-libs-debuginfo 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::appstream openssl-perl 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl-debuginfo 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl-debugsource 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl-devel 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl-libs 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl-libs-debuginfo 0 1:3.2.2-6.el9_5
Red Hat:enterprise_linux:9::baseos openssl-perl 0 1:3.2.2-6.el9_5
Rocky Linux:9 openssl 0 1:3.2.2-6.el9_5.1
Rocky Linux:9 openssl-fips-provider 0 0:3.0.7-6.el9_5
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS openssl-3 0 3.0.8-150400.4.54.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS openssl-3 0 3.0.8-150400.4.54.1
SUSE:Linux Enterprise Micro 5.3 openssl-3 0 3.0.8-150400.4.54.1
SUSE:Linux Enterprise Micro 5.4 openssl-3 0 3.0.8-150400.4.54.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 openssl-3 0 3.0.8-150500.5.33.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 openssl-3 0 3.1.4-150600.5.7.1
SUSE:Linux Enterprise Server 15 SP4-LTSS openssl-3 0 3.0.8-150400.4.54.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 openssl-3 0 3.0.8-150400.4.54.1
SUSE:Manager Proxy 4.3 openssl-3 0 3.0.8-150400.4.54.1
SUSE:Manager Server 4.3 openssl-3 0 3.0.8-150400.4.54.1
Ubuntu:20.04:LTS openssl 0 1.1.1f-1ubuntu2.23
Ubuntu:22.04:LTS nodejs 0 No fix
Ubuntu:22.04:LTS openssl 0 3.0.2-0ubuntu1.17
Ubuntu:24.04:LTS edk2 0 No fix
Ubuntu:24.04:LTS openssl 0 3.0.13-0ubuntu3.2
Ubuntu:24.10 edk2 0 No fix
Ubuntu:24.10 openssl 0 3.2.2-1ubuntu1
Ubuntu:Pro:16.04:LTS nodejs 0 No fix
Ubuntu:Pro:18.04:LTS nodejs 0 No fix
Ubuntu:Pro:22.04:LTS nodejs 0 No fix
Ubuntu:Pro:FIPS-preview:22.04:LTS openssl 0 No fix
Ubuntu:Pro:FIPS-preview:22.04:LTS openssl-fips 0 No fix
Ubuntu:Pro:FIPS-updates:22.04:LTS openssl 0 3.0.2-0ubuntu1.17+Fips1
Ubuntu:Pro:FIPS-updates:22.04:LTS openssl-fips 0 No fix
Ubuntu:Pro:FIPS-updates:24.04:LTS openssl-fips 0 3.0.13-0ubuntu3.6+Fips1
Wolfi libcrypto3 0 3.3.0-r8
Wolfi libssl3 0 3.3.0-r8
Wolfi openssl 0 3.3.0-r8
Wolfi openssl-config 0 3.3.0-r8
Wolfi openssl-dbg 0 3.3.0-r8
Wolfi openssl-dev 0 3.3.0-r8
Wolfi openssl-doc 0 3.3.0-r8
Wolfi openssl-engine-afalg 0 3.3.0-r8
Wolfi openssl-engine-capi 0 3.3.0-r8
Wolfi openssl-engine-loader-attic 0 3.3.0-r8
Wolfi openssl-engine-padlock 0 3.3.0-r8
Wolfi openssl-provider-legacy 0 3.3.0-r8
openSUSE:Leap 15.5 openssl-3 0 3.0.8-150500.5.33.1
openSUSE:Leap 15.6 openssl-3 0 3.1.4-150600.5.7.1
openSUSE:Leap Micro 5.3 openssl-3 0 3.0.8-150400.4.54.1
openSUSE:Leap Micro 5.4 openssl-3 0 3.0.8-150400.4.54.1
openSUSE:Tumbleweed openssl-3 0 3.1.4-8.1

Related vulnerabilities