]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 5177: clientca certificates sent to https_port clients (#955)
authorAlex Rousskov <rousskov@measurement-factory.com>
Wed, 5 Jan 2022 18:38:07 +0000 (18:38 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Sun, 9 Jan 2022 08:47:31 +0000 (08:47 +0000)
commitc97d832bc2142bb3d29ecd3bdab9f41c9b7a79bd
tree5f7002c6d5366cbb7b54df8819df948bc27813aa
parent94864b7b51da8bf21b8a374b1e51182c50ea7a65
Bug 5177: clientca certificates sent to https_port clients (#955)

When sending an https_port _server_ certificate chain to the client,
Squid may send intermediate CA certificates found in clientca=... or
tls-cafile=... client certificate bundles. This "leak" of client CAs
surprises admins, may trigger traffic monitoring alarms, and might even
break https_port certificate validation in some TLS clients.

This surprising "leak" of client CAs is triggered by OpenSSL default
behavior of auto-completing server certificate chains using whatever CA
certificates happened to be in the TLS context certificate store. When
client certificate authentication is enabled, that store may contain
clientca CAs (or equivalent). OpenSSL CHANGES file acknowledges that
this aggressive default behavior can be a problem and introduces
SSL_MODE_NO_AUTO_CHAIN as a way to disable it.

This fix breaks misconfigured Squid deployments that (usually
unknowingly) rely on the OpenSSL clientca "leak" to build a complete
https_port server certificate chain sent to TLS clients. Such
deployments should add the right intermediate CA certificate(s) to their
https_port tls-cert=... bundle (or equivalent).

This is a Measurement Factory project.
src/security/ServerOptions.cc