]> git.ipfire.org Git - thirdparty/openssl.git/commit
Fix double-free in TLS1-PRF KDF when digest change fails
authorZijie Zhao <zijie4@illinois.edu>
Thu, 15 Jan 2026 17:55:53 +0000 (11:55 -0600)
committerTomas Mraz <tomas@openssl.org>
Tue, 20 Jan 2026 18:21:32 +0000 (19:21 +0100)
commit72029afd912e05b74d337bb9749a41795b23baa0
treeb5a5e9f648db4b7b165fcea8daabafca6d5bfdac
parent06666f0d54f165a5c374b529d35c2eb5d707076d
Fix double-free in TLS1-PRF KDF when digest change fails

When changing the digest from MD5-SHA1 to a non-MD5-SHA1 digest,
`ctx->P_sha1` is freed but not set to NULL. If `ossl_prov_macctx_load()`
subsequently fails, `ctx->P_sha1` remains as a dangling pointer.
When the context is later freed via `kdf_tls1_prf_reset()`, this
causes a double-free.

Fix by setting `ctx->P_sha1` to NULL immediately after freeing it.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
MergeDate: Tue Jan 20 18:21:38 2026
(Merged from https://github.com/openssl/openssl/pull/29649)
providers/implementations/kdfs/tls1_prf.c