Headline
CVE-2022-1473: git.openssl.org Git - openssl.git/commitdiff
The OPENSSL_LH_flush() function, which empties a hash table, contains a bug that breaks reuse of the memory occuppied by the removed hash table entries. This function is used when decoding certificates or keys. If a long lived process periodically decodes certificates or keys its memory usage will expand without bounds and the process might be terminated by the operating system causing a denial of service. Also traversing the empty hash table entries will take increasingly more time. Typically such long lived processes might be TLS clients or TLS servers configured to accept client certificate authentication. The function was added in the OpenSSL 3.0 version thus older releases are not affected by the issue. Fixed in OpenSSL 3.0.3 (Affected 3.0.0,3.0.1,3.0.2).
author
Hugo Landau [email protected]
Thu, 21 Apr 2022 15:10:33 +0000 (16:10 +0100)
committer
Tomas Mraz [email protected]
Mon, 25 Apr 2022 11:20:13 +0000 (13:20 +0200)
Fixes #18139.
Reviewed-by: Richard Levitte [email protected]
Reviewed-by: Tomas Mraz [email protected]
(Merged from https://github.com/openssl/openssl/pull/18141)
(cherry picked from commit e5da68183410c06f7b350a0721bc2bd6057e438e)
index a15857cf9fd5ed2b460123e566f58dce2465fee2…1cd988f01fc76a59267281b459a0ca68efee0a8f 100644 (file)
@@ -100,6 +100,8 @@ void OPENSSL_LH_flush(OPENSSL_LHASH *lh)
}
lh->b\[i\] = NULL;
}
lh->num_items = 0;
}
void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)