]> git.kaiwu.me - haproxy.git/commit
BUG/MINOR: ssl: isolate TLS session resumption per crt-list filter
authorWilliam Lallemand <wlallemand@haproxy.com>
Tue, 18 Aug 2026 07:10:49 +0000 (07:10 +0000)
committerWilliam Lallemand <wlallemand@haproxy.com>
Tue, 18 Aug 2026 12:08:17 +0000 (14:08 +0200)
commit52bdd0d02f04d50a6cedd00a9483ee16788a41fd
treea357cdb4ce5805969f3e4a6d37872c55fbfd90d1
parent5d5f12376e51039b69720e23dc3bcca3b598d002
BUG/MINOR: ssl: isolate TLS session resumption per crt-list filter

ssl_set_session_id_context() folds the frontend's own leaf certificate
identity into sid_ctx, but a crt-list can point several entries at the
exact same certificate file, distinguished only by their SNI filter,
e.g.:

    cert.pem foo.example.com
    cert.pem bar.example.com

Each entry gets its own SSL_CTX/ckch_inst, but since both share the same
certificate, they still end up with an identical sid_ctx, and a session
established while connecting to "foo.example.com" can be resumed under
"bar.example.com" (or any other filter sharing that certificate) without
the servername callback/SNI match ever running again on the resumed
handshake.

Fix the issue by adding a ckch_inst parameter in order to hash the
filters provided by the crt-list.

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