-
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
246 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
OpenSSL Security Advisory [16th October 2024] | ||
============================================= | ||
|
||
Low-level invalid GF(2^m) parameters lead to OOB memory access (CVE-2024-9143) | ||
============================================================================== | ||
|
||
Severity: Low | ||
|
||
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. | ||
|
||
OpenSSL 3.3, 3.2, 3.1, 3.0, 1.1.1 and 1.0.2 are vulnerable to this issue. | ||
|
||
OpenSSL 3.3 users should upgrade to OpenSSL 3.3.3 once it is released. | ||
|
||
OpenSSL 3.2 users should upgrade to OpenSSL 3.2.4 once it is released. | ||
|
||
OpenSSL 3.1 users should upgrade to OpenSSL 3.1.8 once it is released. | ||
|
||
OpenSSL 3.0 users should upgrade to OpenSSL 3.0.16 once it is released. | ||
|
||
OpenSSL 1.1.1 users should upgrade to OpenSSL 1.1.1zb once it is released | ||
(premium support customers only). | ||
|
||
OpenSSL 1.0.2 users should upgrade to OpenSSL 1.0.2zl once it is released | ||
(premium support customers only). | ||
|
||
Due to the low severity of this issue we are not issuing new releases of | ||
OpenSSL at this time. The fix will be included in the next release of each | ||
branch, once it becomes available. The fix is also available in commit | ||
c0d3e4d3 (for 3.3), commit bc7e04d7 (for 3.2), commit fdf67233 (for 3.1) | ||
and commit 72ae83ad (for 3.0) in the OpenSSL git repository. It is available | ||
to premium support customers in commit 8efc0cba (for 1.1.1) and in commit | ||
9d576994 (for 1.0.2). | ||
|
||
This issue was reported on 16th September 2024 by Google OSS-Fuzz-Gen. | ||
The fix was developed by Viktor Dukhovni. | ||
|
||
General Advisory Notes | ||
====================== | ||
|
||
URL for this Security Advisory: | ||
https://openssl-library.org/news/secadv/20241016.txt | ||
|
||
Note: the online version of the advisory may be updated with additional details | ||
over time. | ||
|
||
For details of OpenSSL severity classifications please see: | ||
https://openssl-library.org/policies/general/security-policy/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
{ | ||
"containers": { | ||
"cna": { | ||
"affected": [ | ||
{ | ||
"defaultStatus": "unaffected", | ||
"product": "OpenSSL", | ||
"vendor": "OpenSSL", | ||
"versions": [ | ||
{ | ||
"lessThan": "3.3.3", | ||
"status": "affected", | ||
"version": "3.3.0", | ||
"versionType": "semver" | ||
}, | ||
{ | ||
"lessThan": "3.2.4", | ||
"status": "affected", | ||
"version": "3.2.0", | ||
"versionType": "semver" | ||
}, | ||
{ | ||
"lessThan": "3.1.8", | ||
"status": "affected", | ||
"version": "3.1.0", | ||
"versionType": "semver" | ||
}, | ||
{ | ||
"lessThan": "3.0.16", | ||
"status": "affected", | ||
"version": "3.0.0", | ||
"versionType": "semver" | ||
}, | ||
{ | ||
"lessThan": "1.1.1zb", | ||
"status": "affected", | ||
"version": "1.1.1", | ||
"versionType": "custom" | ||
}, | ||
{ | ||
"lessThan": "1.0.2zl", | ||
"status": "affected", | ||
"version": "1.0.2", | ||
"versionType": "custom" | ||
} | ||
] | ||
} | ||
], | ||
"credits": [ | ||
{ | ||
"lang": "en", | ||
"type": "finder", | ||
"value": "Google OSS-Fuzz-Gen" | ||
}, | ||
{ | ||
"lang": "en", | ||
"type": "remediation developer", | ||
"value": "Viktor Dukhovni" | ||
} | ||
], | ||
"datePublic": "2024-10-16T14:00:00.000Z", | ||
"descriptions": [ | ||
{ | ||
"lang": "en", | ||
"supportingMedia": [ | ||
{ | ||
"base64": false, | ||
"type": "text/html", | ||
"value": "Issue summary: Use of the low-level GF(2^m) elliptic curve APIs with untrusted<br>explicit values for the field polynomial can lead to out-of-bounds memory reads<br>or writes.<br><br>Impact summary: Out of bound memory writes can lead to an application crash or<br>even a possibility of a remote code execution, however, in all the protocols<br>involving Elliptic Curve Cryptography that we're aware of, either only \"named<br>curves\" are supported, or, if explicit curve parameters are supported, they<br>specify an X9.62 encoding of binary (GF(2^m)) curves that can't represent<br>problematic input values. Thus the likelihood of existence of a vulnerable<br>application is low.<br><br>In particular, the X9.62 encoding is used for ECC keys in X.509 certificates,<br>so problematic inputs cannot occur in the context of processing X.509<br>certificates. Any problematic use-cases would have to be using an \"exotic\"<br>curve encoding.<br><br>The affected APIs include: EC_GROUP_new_curve_GF2m(), EC_GROUP_new_from_params(),<br>and various supporting BN_GF2m_*() functions.<br><br>Applications working with \"exotic\" explicit binary (GF(2^m)) curve parameters,<br>that make it possible to represent invalid field polynomials with a zero<br>constant term, via the above or similar APIs, may terminate abruptly as a<br>result of reading or writing outside of array bounds. Remote code execution<br>cannot easily be ruled out.<br><br>The FIPS modules in 3.3, 3.2, 3.1 and 3.0 are not affected by this issue." | ||
} | ||
], | ||
"value": "Issue summary: Use of the low-level GF(2^m) elliptic curve APIs with untrusted\nexplicit values for the field polynomial can lead to out-of-bounds memory reads\nor writes.\n\nImpact summary: Out of bound memory writes can lead to an application crash or\neven a possibility of a remote code execution, however, in all the protocols\ninvolving Elliptic Curve Cryptography that we're aware of, either only \"named\ncurves\" are supported, or, if explicit curve parameters are supported, they\nspecify an X9.62 encoding of binary (GF(2^m)) curves that can't represent\nproblematic input values. Thus the likelihood of existence of a vulnerable\napplication is low.\n\nIn particular, the X9.62 encoding is used for ECC keys in X.509 certificates,\nso problematic inputs cannot occur in the context of processing X.509\ncertificates. Any problematic use-cases would have to be using an \"exotic\"\ncurve encoding.\n\nThe affected APIs include: EC_GROUP_new_curve_GF2m(), EC_GROUP_new_from_params(),\nand various supporting BN_GF2m_*() functions.\n\nApplications working with \"exotic\" explicit binary (GF(2^m)) curve parameters,\nthat make it possible to represent invalid field polynomials with a zero\nconstant term, via the above or similar APIs, may terminate abruptly as a\nresult of reading or writing outside of array bounds. Remote code execution\ncannot easily be ruled out.\n\nThe FIPS modules in 3.3, 3.2, 3.1 and 3.0 are not affected by this issue." | ||
} | ||
], | ||
"metrics": [ | ||
{ | ||
"format": "other", | ||
"other": { | ||
"content": { | ||
"text": "Low" | ||
}, | ||
"type": "https://openssl-library.org/policies/general/security-policy/" | ||
} | ||
} | ||
], | ||
"problemTypes": [ | ||
{ | ||
"descriptions": [ | ||
{ | ||
"cweId": "CWE-787", | ||
"description": "CWE-787 Out-of-bounds Write", | ||
"lang": "en", | ||
"type": "CWE" | ||
} | ||
] | ||
} | ||
], | ||
"providerMetadata": { | ||
"orgId": "00000000-0000-4000-9000-000000000000", | ||
"shortName": "openssl" | ||
}, | ||
"references": [ | ||
{ | ||
"name": "OpenSSL Advisory", | ||
"tags": [ | ||
"vendor-advisory" | ||
], | ||
"url": "https://openssl-library.org/news/secadv/20241016.txt" | ||
}, | ||
{ | ||
"name": "3.3.3 git commit", | ||
"tags": [ | ||
"patch" | ||
], | ||
"url": "https://github.com/openssl/openssl/commit/c0d3e4d32d2805f49bec30547f225bc4d092e1f4" | ||
}, | ||
{ | ||
"name": "3.2.4 git commit", | ||
"tags": [ | ||
"patch" | ||
], | ||
"url": "https://github.com/openssl/openssl/commit/bc7e04d7c8d509fb78fc0e285aa948fb0da04700" | ||
}, | ||
{ | ||
"name": "3.1.8 git commit", | ||
"tags": [ | ||
"patch" | ||
], | ||
"url": "https://github.com/openssl/openssl/commit/fdf6723362ca51bd883295efe206cb5b1cfa5154" | ||
}, | ||
{ | ||
"name": "3.0.16 git commit", | ||
"tags": [ | ||
"patch" | ||
], | ||
"url": "https://github.com/openssl/openssl/commit/72ae83ad214d2eef262461365a1975707f862712" | ||
}, | ||
{ | ||
"name": "1.1.1zb git commit", | ||
"tags": [ | ||
"patch" | ||
], | ||
"url": "https://github.openssl.org/openssl/extended-releases/commit/8efc0cbaa8ebba8e116f7b81a876a4123594d86a" | ||
}, | ||
{ | ||
"name": "1.0.2zl git commit", | ||
"tags": [ | ||
"patch" | ||
], | ||
"url": "https://github.openssl.org/openssl/extended-releases/commit/9d576994cec2b7aa37a91740ea7e680810957e41" | ||
} | ||
], | ||
"source": { | ||
"discovery": "UNKNOWN" | ||
}, | ||
"title": "Low-level invalid GF(2^m) parameters lead to OOB memory access", | ||
"x_generator": { | ||
"engine": "Vulnogram 0.2.0" | ||
} | ||
} | ||
}, | ||
"cveMetadata": { | ||
"assignerOrgId": "00000000-0000-4000-9000-000000000000", | ||
"cveId": "CVE-2024-9143", | ||
"requesterUserId": "00000000-0000-4000-9000-000000000000", | ||
"serial": 1, | ||
"state": "PUBLISHED" | ||
}, | ||
"dataType": "CVE_RECORD", | ||
"dataVersion": "5.1" | ||
} |