{"id":"CVE-2026-27586","summary":"Caddy's mTLS client authentication silently fails open when CA certificate file is missing or malformed","details":"Caddy is an extensible server platform that uses TLS by default. Prior to version 2.11.1, two swallowed errors in `ClientAuthentication.provision()` cause mTLS client certificate authentication to silently fail open when a CA certificate file is missing, unreadable, or malformed. The server starts without error but accepts any client certificate signed by any system-trusted CA, completely bypassing the intended private CA trust boundary. Any deployment using `trusted_ca_cert_file` or `trusted_ca_certs_pem_files` for mTLS will silently degrade to accepting any system-trusted client certificate if the CA file becomes unavailable. This can happen due to a typo in the path, file rotation, corruption, or permission changes. The server gives no indication that mTLS is misconfigured. Version 2.11.1 fixes the vulnerability.","aliases":["GHSA-hffm-g8v7-wrv7","GO-2026-4539"],"modified":"2026-04-10T05:39:03.952325Z","published":"2026-02-24T16:08:20.569Z","related":["SUSE-SU-2026:0757-1"],"database_specific":{"cna_assigner":"GitHub_M","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27586.json","cwe_ids":["CWE-755"]},"references":[{"type":"WEB","url":"https://gist.github.com/moscowchill/9566c79c76c0b64c57f8bd0716f97c48"},{"type":"WEB","url":"https://github.com/caddyserver/caddy/releases/tag/v2.11.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27586.json"},{"type":"ADVISORY","url":"https://github.com/caddyserver/caddy/security/advisories/GHSA-hffm-g8v7-wrv7"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-27586"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/caddyserver/caddy","events":[{"introduced":"0"},{"fixed":"6610e2f1bd8f54853006eefd3849c9965190e57f"}]}],"versions":["v2.0.0","v2.0.0-beta.13","v2.0.0-beta.14","v2.0.0-beta.15","v2.0.0-beta.16","v2.0.0-beta.17","v2.0.0-beta.18","v2.0.0-beta.19","v2.0.0-beta.20","v2.0.0-beta1","v2.0.0-beta10","v2.0.0-beta11","v2.0.0-beta12","v2.0.0-beta2","v2.0.0-beta3","v2.0.0-beta4","v2.0.0-beta5","v2.0.0-beta6","v2.0.0-beta7","v2.0.0-beta8","v2.0.0-beta9","v2.0.0-rc.1","v2.0.0-rc.2","v2.0.0-rc.3","v2.1.0","v2.1.0-beta.1","v2.1.0-beta.2","v2.1.1","v2.10.0","v2.10.0-beta.1","v2.10.0-beta.2","v2.10.0-beta.3","v2.10.0-beta.4","v2.10.1","v2.10.2","v2.11.0","v2.11.0-beta.1","v2.11.0-beta.2","v2.2.0","v2.2.0-rc.1","v2.2.0-rc.2","v2.2.0-rc.3","v2.2.1","v2.2.3","v2.3.0","v2.3.0-beta.1","v2.3.0-rc.1","v2.3.0-rc.2","v2.4.0","v2.4.0-beta.1","v2.4.0-beta.2","v2.4.0-rc.1","v2.4.1","v2.4.2","v2.4.3","v2.4.4","v2.4.5","v2.4.6","v2.5.0","v2.5.0-beta.1","v2.5.0-rc.1","v2.5.1","v2.5.2","v2.6.0","v2.6.0-beta.1","v2.6.0-beta.2","v2.6.0-beta.3","v2.6.0-beta.4","v2.6.0-beta.5","v2.6.1","v2.6.2","v2.6.3","v2.6.4","v2.7.0","v2.7.0-beta.1","v2.7.0-beta.2","v2.7.1","v2.7.2","v2.7.3","v2.7.4","v2.7.5","v2.8.0","v2.8.0-beta.1","v2.8.0-beta.2","v2.8.0-rc.1","v2.8.1","v2.8.2","v2.8.3","v2.8.4","v2.9.0","v2.9.0-beta.1","v2.9.0-beta.2","v2.9.0-beta.3","v2.9.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-27586.json"}},{"ranges":[{"type":"GIT","repo":"https://github.com/mholt/caddy","events":[{"introduced":"0"},{"fixed":"6610e2f1bd8f54853006eefd3849c9965190e57f"}],"database_specific":{"versions":[{"introduced":"0"},{"fixed":"2.11.1"}]}}],"versions":["v2.0.0","v2.0.0-beta.13","v2.0.0-beta.14","v2.0.0-beta.15","v2.0.0-beta.16","v2.0.0-beta.17","v2.0.0-beta.18","v2.0.0-beta.19","v2.0.0-beta.20","v2.0.0-beta1","v2.0.0-beta10","v2.0.0-beta11","v2.0.0-beta12","v2.0.0-beta2","v2.0.0-beta3","v2.0.0-beta4","v2.0.0-beta5","v2.0.0-beta6","v2.0.0-beta7","v2.0.0-beta8","v2.0.0-beta9","v2.0.0-rc.1","v2.0.0-rc.2","v2.0.0-rc.3","v2.1.0","v2.1.0-beta.1","v2.1.0-beta.2","v2.1.1","v2.10.0","v2.10.0-beta.1","v2.10.0-beta.2","v2.10.0-beta.3","v2.10.0-beta.4","v2.10.1","v2.10.2","v2.11.0","v2.11.0-beta.1","v2.11.0-beta.2","v2.2.0","v2.2.0-rc.1","v2.2.0-rc.2","v2.2.0-rc.3","v2.2.1","v2.2.3","v2.3.0","v2.3.0-beta.1","v2.3.0-rc.1","v2.3.0-rc.2","v2.4.0","v2.4.0-beta.1","v2.4.0-beta.2","v2.4.0-rc.1","v2.4.1","v2.4.2","v2.4.3","v2.4.4","v2.4.5","v2.4.6","v2.5.0","v2.5.0-beta.1","v2.5.0-rc.1","v2.5.1","v2.5.2","v2.6.0","v2.6.0-beta.1","v2.6.0-beta.2","v2.6.0-beta.3","v2.6.0-beta.4","v2.6.0-beta.5","v2.6.1","v2.6.2","v2.6.3","v2.6.4","v2.7.0","v2.7.0-beta.1","v2.7.0-beta.2","v2.7.1","v2.7.2","v2.7.3","v2.7.4","v2.7.5","v2.8.0","v2.8.0-beta.1","v2.8.0-beta.2","v2.8.0-rc.1","v2.8.1","v2.8.2","v2.8.3","v2.8.4","v2.9.0","v2.9.0-beta.1","v2.9.0-beta.2","v2.9.0-beta.3","v2.9.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-27586.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P"}]}