The Diffie-Hellman Key Agreement Protocol allows use of long exponents that arguably make certain calculations unnecessarily expensive, because the 1996 van Oorschot and Wiener paper found that (appropriately) short exponents can be used when there are adequate subgroup constraints, and these short exponents can lead to less expensive calculations than for long exponents. This issue is different from CVE-2002-20001 because it is based on an observation about exponent size, rather than an observation about numbers that are not public keys. The specific situations in which calculation expense would constitute a server-side vulnerability depend on the protocol (e.g., TLS, SSH, or IKE) and the DHE implementation details. In general, there might be an availability concern because of server-side resource consumption from DHE modular-exponentiation calculations. Finally, it is possible for an attacker to exploit this vulnerability and CVE-2002-20001 together.
The product does not properly control the allocation and maintenance of a limited resource.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Diffie-hellman_key_exchange | Diffie-hellman_key_exchange_project | - (including) | - (including) |
Edk2 | Ubuntu | bionic | * |
Edk2 | Ubuntu | kinetic | * |
Edk2 | Ubuntu | lunar | * |
Edk2 | Ubuntu | trusty | * |
Edk2 | Ubuntu | xenial | * |
Nodejs | Ubuntu | esm-apps/jammy | * |
Nodejs | Ubuntu | jammy | * |
Nodejs | Ubuntu | trusty | * |
Openssl | Ubuntu | bionic | * |
Openssl | Ubuntu | fips-preview/jammy | * |
Openssl | Ubuntu | fips-updates/jammy | * |
Openssl | Ubuntu | jammy | * |
Openssl | Ubuntu | kinetic | * |
Openssl | Ubuntu | lunar | * |
Openssl | Ubuntu | trusty | * |
Openssl | Ubuntu | upstream | * |
Openssl | Ubuntu | xenial | * |
Openssl1.0 | Ubuntu | bionic | * |
Openssl1.0 | Ubuntu | upstream | * |
Mitigation of resource exhaustion attacks requires that the target system either:
The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question.
The second solution is simply difficult to effectively institute – and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker.