Issue summary: Checking excessively long invalid RSA public keys may take a long time.
Impact summary: Applications that use the function EVPPKEYpublic_check() to check RSA public keys may experience long delays. Where the key that is being checked has been obtained from an untrusted source this may lead to a Denial of Service.
When function EVPPKEYpublic_check() is called on RSA public keys, a computation is done to confirm that the RSA modulus, n, is composite. For valid RSA keys, n is a product of two or more large primes and this computation completes quickly. However, if n is an overly large prime, then this computation would take a long time.
An application that calls EVPPKEYpublic_check() and supplies an RSA key obtained from an untrusted source could be vulnerable to a Denial of Service attack.
The function EVPPKEYpublic_check() is not called from other OpenSSL functions however it is called from the OpenSSL pkey command line application. For that reason that application is also vulnerable if used with the '-pubin' and '-check' options on untrusted data.
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.
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "36262343259786368621085857695218833956",
"length": 1258.0
},
"target": {
"function": "ossl_rsa_sp800_56b_check_public",
"file": "crypto/rsa/rsa_sp800_56b_check.c"
},
"id": "CVE-2023-6237-07b4356d",
"source": "https://github.com/openssl/openssl/commit/0b0f7abfb37350794a4b8960fafc292cd5d1b84d",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"5799985256469090440161975918621279176",
"231956326038171660204156138522531293340",
"72751756268789884712810101003534450503",
"314070120765545521861021195160721661288",
"163275361520424784336712083888861921840",
"80433659035868977858238900915029720241",
"55330043341397734539339972248704545042",
"79386981174192347288537193082013598235"
]
},
"target": {
"file": "crypto/rsa/rsa_sp800_56b_check.c"
},
"id": "CVE-2023-6237-3d282511",
"source": "https://github.com/openssl/openssl/commit/18c02492138d1eb8b6548cb26e7b625fb2414a2a",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"5799985256469090440161975918621279176",
"231956326038171660204156138522531293340",
"72751756268789884712810101003534450503",
"314070120765545521861021195160721661288",
"163275361520424784336712083888861921840",
"80433659035868977858238900915029720241",
"55330043341397734539339972248704545042",
"79386981174192347288537193082013598235"
]
},
"target": {
"file": "crypto/rsa/rsa_sp800_56b_check.c"
},
"id": "CVE-2023-6237-7dd742ac",
"source": "https://github.com/openssl/openssl/commit/0b0f7abfb37350794a4b8960fafc292cd5d1b84d",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "36262343259786368621085857695218833956",
"length": 1258.0
},
"target": {
"function": "ossl_rsa_sp800_56b_check_public",
"file": "crypto/rsa/rsa_sp800_56b_check.c"
},
"id": "CVE-2023-6237-8aca94dc",
"source": "https://github.com/openssl/openssl/commit/18c02492138d1eb8b6548cb26e7b625fb2414a2a",
"signature_type": "Function"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"5799985256469090440161975918621279176",
"231956326038171660204156138522531293340",
"72751756268789884712810101003534450503",
"314070120765545521861021195160721661288",
"163275361520424784336712083888861921840",
"80433659035868977858238900915029720241",
"55330043341397734539339972248704545042",
"79386981174192347288537193082013598235"
]
},
"target": {
"file": "crypto/rsa/rsa_sp800_56b_check.c"
},
"id": "CVE-2023-6237-98851d99",
"source": "https://github.com/openssl/openssl/commit/a830f551557d3d66a84bbb18a5b889c640c36294",
"signature_type": "Line"
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "36262343259786368621085857695218833956",
"length": 1258.0
},
"target": {
"function": "ossl_rsa_sp800_56b_check_public",
"file": "crypto/rsa/rsa_sp800_56b_check.c"
},
"id": "CVE-2023-6237-e95520da",
"source": "https://github.com/openssl/openssl/commit/a830f551557d3d66a84bbb18a5b889c640c36294",
"signature_type": "Function"
}
]