{"id":"CVE-2026-55962","summary":"TLS 1.3 post-handshake authentication: server accepts Finished without client Certificate/CertificateVerify","details":"TLS 1.3 post-handshake authentication (PHA) issue where a server could accept a client's Finished message without the client having sent a Certificate and CertificateVerify. The post-handshake-auth exemption that allows an empty/absent peer certificate was only intended for the initial handshake, but it was also being applied while a post-handshake CertificateRequest was still outstanding. The check is now scoped to the initial handshake only: on the server, once a post-handshake CertificateRequest has been sent (certReqCtx is set), a peer certificate and a valid CertificateVerify are required again before the Finished is accepted, with empty-certificate handling following the configured verify mode (FAIL_IF_NO_PEER_CERT) just as during first-handshake client authentication. Only affects TLS 1.3 servers built with post-handshake authentication support (WOLFSSL_POST_HANDSHAKE_AUTH / --enable-postauth, included in --enable-all) that enable WOLFSSL_VERIFY_POST_HANDSHAKE and request a client certificate after the handshake via wolfSSL_request_certificate(). Clients, and servers that do not use post-handshake authentication, are unaffected.","modified":"2026-07-16T03:48:42.703725795Z","published":"2026-06-25T21:12:38.074Z","database_specific":{"cna_assigner":"wolfSSL","cwe_ids":["CWE-287"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55962.json"},"references":[{"type":"WEB","url":"https://www.wolfssl.com/docs/security-vulnerabilities/"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55962.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55962"},{"type":"FIX","url":"https://github.com/wolfSSL/wolfssl/pull/10702"},{"type":"PACKAGE","url":"https://github.com/wolfSSL/wolfssl"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/wolfssl/wolfssl","events":[{"introduced":"4fbd4fd36a21efd9d1a7e17aba390e91c78693b1"},{"fixed":"ac01707f552c611fbd135cc723b2682b3e7f80f2"}],"database_specific":{"cpe":"cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"5.5.4"},{"last_affected":"5.9.1"},{"fixed":"5.9.2"}],"source":["AFFECTED_FIELD","CPE_RANGE"]}}],"versions":["v5.9.1-stable","v5.9.0-stable","v5.8.4-stable","wolfEntropy2d","v5.8.2-stable","wolfEntropy1","v5.8.0-stable","v5.7.6-stable","v5.7.4-stable","v5.2.1","v5.7.2-stable","v5.7.0-stable","v5.6.6-stable","v5.6.4-stable","v5.6.2-stable","v5.6.3-stable","v5.6.0-stable","v5.5.4-stable"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55962.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N"}]}