From 358653d06a416401206ee618e2c691a0cd66c1cd Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 11 Mar 2026 18:16:53 +0100 Subject: [PATCH] gmp: Reject public keys with public exponent e < 3 This ensures that we don't load a key with e=1, which basically renders RSA into a no-op. Since keys are universally generated with e=65537 and no reputable CA will sign keys with e=1, allowing this before didn't have any real world impact. --- src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c b/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c index ea3733b4e..466307877 100644 --- a/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c +++ b/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c @@ -496,7 +496,7 @@ gmp_rsa_public_key_t *gmp_rsa_public_key_load(key_type_t type, va_list args) this->k = (mpz_sizeinbase(this->n, 2) + 7) / BITS_PER_BYTE; - if (!mpz_sgn(this->e)) + if (!mpz_sgn(this->e) || mpz_cmp_ui(this->e, 3) < 0) { destroy(this); return NULL;