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).
CPE | Name | Operator | Version |
---|---|---|---|
openssl-src | ge | 300.0.0 | |
openssl-src | lt | 300.0.6 |
cert-portal.siemens.com/productcert/pdf/ssa-953464.pdf
git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=64c85430f95200b6b51fe9475bd5203f7c19daf1
github.com/github/advisory-database/issues/405
nvd.nist.gov/vuln/detail/CVE-2022-1473
rustsec.org/advisories/RUSTSEC-2022-0025.html
security.gentoo.org/glsa/202210-02
security.netapp.com/advisory/ntap-20220602-0009
www.openssl.org/news/secadv/20220503.txt