// For flags

CVE-2024-9143

Low-level invalid GF(2^m) parameters lead to OOB memory access

Severity Score

4.3
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

Issue summary: Use of the low-level GF(2^m) elliptic curve APIs with untrusted
explicit values for the field polynomial can lead to out-of-bounds memory reads
or writes.

Impact summary: Out of bound memory writes can lead to an application crash or
even a possibility of a remote code execution, however, in all the protocols
involving Elliptic Curve Cryptography that we're aware of, either only "named
curves" are supported, or, if explicit curve parameters are supported, they
specify an X9.62 encoding of binary (GF(2^m)) curves that can't represent
problematic input values. Thus the likelihood of existence of a vulnerable
application is low.

In particular, the X9.62 encoding is used for ECC keys in X.509 certificates,
so problematic inputs cannot occur in the context of processing X.509
certificates. Any problematic use-cases would have to be using an "exotic"
curve encoding.

The affected APIs include: EC_GROUP_new_curve_GF2m(), EC_GROUP_new_from_params(),
and various supporting BN_GF2m_*() functions.

Applications working with "exotic" explicit binary (GF(2^m)) curve parameters,
that make it possible to represent invalid field polynomials with a zero
constant term, via the above or similar APIs, may terminate abruptly as a
result of reading or writing outside of array bounds. Remote code execution
cannot easily be ruled out.

The FIPS modules in 3.3, 3.2, 3.1 and 3.0 are not affected by this issue.

Resumen del problema: el uso de las API de curva elíptica GF(2^m) de bajo nivel con valores explícitos no confiables para el campo polinomial puede generar lecturas o escrituras de memoria fuera de los límites. Resumen del impacto: las escrituras de memoria fuera de los límites pueden generar un bloqueo de la aplicación o incluso la posibilidad de una ejecución de código remoto; sin embargo, en todos los protocolos que involucran criptografía de curva elíptica que conocemos, solo se admiten "curvas con nombre" o, si se admiten parámetros de curva explícitos, especifican una codificación X9.62 de curvas binarias (GF(2^m)) que no pueden representar valores de entrada problemáticos. Por lo tanto, la probabilidad de existencia de una aplicación vulnerable es baja. En particular, la codificación X9.62 se utiliza para claves ECC en certificados X.509, por lo que no pueden ocurrir entradas problemáticas en el contexto del procesamiento de certificados X.509. Cualquier caso de uso problemático tendría que utilizar una codificación de curva "exótica". Las API afectadas incluyen: EC_GROUP_new_curve_GF2m(), EC_GROUP_new_from_params() y varias funciones de soporte BN_GF2m_*(). Las aplicaciones que trabajan con parámetros de curva binarios explícitos "exóticos" (GF(2^m)), que permiten representar polinomios de campo no válidos con un término constante cero, a través de las API anteriores o similares, pueden terminar abruptamente como resultado de la lectura o escritura fuera de los límites de la matriz. La ejecución remota de código no se puede descartar fácilmente. Los módulos FIPS en 3.3, 3.2, 3.1 y 3.0 no se ven afectados por este problema.

*Credits: Google OSS-Fuzz-Gen, Viktor Dukhovni
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-09-24 CVE Reserved
  • 2024-10-16 CVE Published
  • 2024-10-17 EPSS Updated
  • 2024-11-08 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-787: Out-of-bounds Write
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
OpenSSL
Search vendor "OpenSSL"
OpenSSL
Search vendor "OpenSSL" for product "OpenSSL"
>= 3.3.0 < 3.3.3
Search vendor "OpenSSL" for product "OpenSSL" and version " >= 3.3.0 < 3.3.3"
en
Affected
OpenSSL
Search vendor "OpenSSL"
OpenSSL
Search vendor "OpenSSL" for product "OpenSSL"
>= 3.2.0 < 3.2.4
Search vendor "OpenSSL" for product "OpenSSL" and version " >= 3.2.0 < 3.2.4"
en
Affected
OpenSSL
Search vendor "OpenSSL"
OpenSSL
Search vendor "OpenSSL" for product "OpenSSL"
>= 3.1.0 < 3.1.8
Search vendor "OpenSSL" for product "OpenSSL" and version " >= 3.1.0 < 3.1.8"
en
Affected
OpenSSL
Search vendor "OpenSSL"
OpenSSL
Search vendor "OpenSSL" for product "OpenSSL"
>= 3.0.0 < 3.0.16
Search vendor "OpenSSL" for product "OpenSSL" and version " >= 3.0.0 < 3.0.16"
en
Affected