BUG/MEDIUM: ssl: wrong eviction from the session cache tree
authorWilliam Lallemand <wlallemand@haproxy.org>
Tue, 31 Jan 2023 13:12:28 +0000 (14:12 +0100)
committerWilliam Lallemand <wlallemand@haproxy.org>
Tue, 31 Jan 2023 13:34:40 +0000 (14:34 +0100)
commit222e5a260bea5de940db2fd6cf19da2176ac8934
tree7baf64e5704715b464de0edc5e439b000378eb5f
parent56a86ddfb97d740f965503f6b5991fafa347308c
BUG/MEDIUM: ssl: wrong eviction from the session cache tree

When using WolfSSL, there are some cases were the SSL_CTX_sess_new_cb is
called with an existing session ID. These cases are not met with
OpenSSL.

When the ID is found in the session tree during the insertion, the
shared_block len is not set to 0 and is not used. However if later the
block is reused, since the len is not set to 0, the release callback
will be called an ebmb_delete will be tried on the block, even if it's
not in the tree, provoking a crash.

The code was buggy from the beginning, but the case never happen with
openssl which changes the ID.

Must be backported in every maintained branches.
src/ssl_sock.c