Skip to content

Commit

Permalink
Check for 0 modulus in BN_RECP_CTX_set.
Browse files Browse the repository at this point in the history
The function BN_RECP_CTX_set did not check whether arg d is zero,
in which case an early failure should be returned to the invoker.
This is a similar fix to the cognate defect of CVE-2015-1794.

Fixes #21111

CLA: trivial

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from #21255)

(cherry picked from commit 43596b3)
  • Loading branch information
fullwaywang authored and paulidale committed Jun 25, 2023
1 parent 86b2886 commit 87da0e6
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion crypto/bn/bn_recp.c
Expand Up @@ -44,7 +44,7 @@ void BN_RECP_CTX_free(BN_RECP_CTX *recp)

int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
{
if (!BN_copy(&(recp->N), d))
if (BN_is_zero(d) || !BN_copy(&(recp->N), d))
return 0;
BN_zero(&(recp->Nr));
recp->num_bits = BN_num_bits(d);
Expand Down

0 comments on commit 87da0e6

Please sign in to comment.