CVE-2019-1547
ECDSA remote timing attack
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
Normally in OpenSSL EC groups always have a co-factor present and this is used in side channel resistant code paths. However, in some cases, it is possible to construct a group using explicit parameters (instead of using a named curve). In those cases it is possible that such a group does not have the cofactor present. This can occur even where all the parameters match a known named curve. If such a curve is used then OpenSSL falls back to non-side channel resistant code paths which may result in full key recovery during an ECDSA signature operation. In order to be vulnerable an attacker would have to have the ability to time the creation of a large number of signatures where explicit parameters with no co-factor present are in use by an application using libcrypto. For the avoidance of doubt libssl is not vulnerable because explicit parameters are never used. Fixed in OpenSSL 1.1.1d (Affected 1.1.1-1.1.1c). Fixed in OpenSSL 1.1.0l (Affected 1.1.0-1.1.0k). Fixed in OpenSSL 1.0.2t (Affected 1.0.2-1.0.2s).
Normalmente en los grupos EC de OpenSSL siempre tienen un cofactor presente y este es usado en rutas de código resistentes a canales laterales. Sin embargo, en ciertos casos, es posible construir un grupo usando parámetros explícitos (en lugar de usar una curva nombrada). En esos casos, es posible que dicho grupo no tenga el cofactor presente. Esto puede ocurrir incluso cuando todos los parámetros coinciden con una curva de nombre conocido. Si es utilizada dicha curva, entonces OpenSSL recurre a rutas de código resistentes a canales no laterales lo que puede resultar en una recuperación de clave completa durante una operación de firma ECDSA. Para que sea vulnerable, un atacante tendría que tener la capacidad de cronometrar la creación de un gran número de firmas donde parámetros explícitos sin cofactor presente están en uso mediante una aplicación que utiliza libcrypto. Para evitar dudas, libssl no es vulnerable porque nunca se utilizan parámetros explícitos. Corregido en OpenSSL versión 1.1.1d (afectada la versión 1.1.1-1.1.1c). Corregido en OpenSSL versión 1.1.0l (afectada la versión 1.1.0-1.1.0k). Corregida en OpenSSL versión 1.0.2t (afectada la versión 1.0.2-1.0.2s).
CVSS Scores
SSVC
- Decision:Track
Timeline
- 2018-11-28 CVE Reserved
- 2019-09-10 CVE Published
- 2024-09-03 EPSS Updated
- 2024-09-16 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
- CWE-602: Client-Side Enforcement of Server-Side Security
CAPEC
References (37)
URL | Date | SRC |
---|
URL | Date | SRC |
---|
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" | >= 1.0.2 <= 1.0.2s Search vendor "Openssl" for product "Openssl" and version " >= 1.0.2 <= 1.0.2s" | - |
Affected
| ||||||
Openssl Search vendor "Openssl" | Openssl Search vendor "Openssl" for product "Openssl" | >= 1.1.0 <= 1.1.0k Search vendor "Openssl" for product "Openssl" and version " >= 1.1.0 <= 1.1.0k" | - |
Affected
| ||||||
Openssl Search vendor "Openssl" | Openssl Search vendor "Openssl" for product "Openssl" | >= 1.1.1 <= 1.1.1c Search vendor "Openssl" for product "Openssl" and version " >= 1.1.1 <= 1.1.1c" | - |
Affected
|