Severity by source
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
AV:N for TLS network reachability; AC:H for non-default compile flags and explicit API calls required; PR:N as any client can open a TLS session; I:H for full authentication bypass.
Primary rating from Vendor (wolfSSL).
CVSS VectorVendor: wolfSSL
Lifecycle Timeline
2DescriptionCVE.org
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.
AnalysisAI
Post-handshake authentication bypass in wolfSSL TLS 1.3 permits a connected client to skip certificate verification during server-initiated post-handshake re-authentication. When a server has issued a post-handshake CertificateRequest via wolfSSL_request_certificate(), a client can send a Finished message without providing a Certificate or CertificateVerify; the server incorrectly applies an initial-handshake exemption and accepts it, treating the client as authenticated. No public exploit is identified and this is not listed in CISA KEV; the vulnerability was self-disclosed by wolfSSL with a patch available in GitHub PR #10702.
Technical ContextAI
wolfSSL is a lightweight, portable TLS library (CPE: cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:*) widely deployed in embedded, IoT, automotive, and networking products. The defect (CWE-287: Improper Authentication) is located in src/tls13.c within DoTls13Finished() and SanityCheckTls13MsgReceived(). TLS 1.3 post-handshake authentication (PHA, RFC 8446 §4.6.2) allows a server to request client certificate authentication after the initial handshake via a CertificateRequest message. wolfSSL tracks an outstanding PHA request via the certReqCtx pointer. The bug: the code path that exempts an absent/empty client certificate - intended only for the initial handshake when FAIL_IF_NO_PEER_CERT is not set - was also applied while certReqCtx was non-NULL, meaning an outstanding PHA CertificateRequest was being treated identically to an optional-cert initial handshake. The PR diff confirms the fix narrows this exemption: the condition now reads (!ssl->options.verifyPostHandshake || ssl->certReqCtx != NULL), so that when certReqCtx is set the server re-mandates Certificate and CertificateVerify before accepting Finished.
RemediationAI
Apply the upstream fix from GitHub PR #10702 (https://github.com/wolfSSL/wolfssl/pull/10702) and monitor https://www.wolfssl.com/docs/security-vulnerabilities/ for the official patched release version, which is not yet confirmed from available data - do not assume the PR merge corresponds to a tagged release. If an immediate upgrade is not feasible, the most direct and lowest-risk compensating control is to recompile wolfSSL without the --enable-postauth (or --enable-all) flag, removing the WOLFSSL_POST_HANDSHAKE_AUTH define entirely; this eliminates the vulnerable code path with no impact on servers that do not require post-handshake re-authentication. Alternatively, removing calls to wolfSSL_request_certificate() from server application code is sufficient to prevent exploitation without recompilation, though it also disables the PHA feature. Servers that do not use post-handshake authentication in any form require no action.
wolfSSL prior to version 3.12.2 provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange i
A specially crafted x509 certificate can cause a single out of bounds byte overwrite in wolfSSL through 3.10.2 resulting
wolfSSL (formerly CyaSSL) before 3.6.8 allows remote attackers to cause a denial of service (resource consumption or tra
In wolfSSL before 5.5.1, malicious clients can cause a buffer overflow during a TLS 1.3 handshake. Rated high severity (
An issue was discovered in wolfSSL before 5.5.0. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita
wolfSSL 4.3.0 has mulmod code in wc_ecc_mulmod_ex in ecc.c that does not properly resist timing side-channel attacks. Ra
In wolfSSL 4.1.0 through 4.2.0c, there are missing sanity checks of memory accesses in parsing ASN.1 certificate data wh
An issue was discovered in wolfSSL before 4.5.0, when single precision is not employed. Rated high severity (CVSS 7.0).
wolfSSL before 4.5.0 mishandles TLS 1.3 server data in the WAIT_CERT_CR state, within SanityCheckTls13MsgReceived() in t
wolfSSL (formerly CyaSSL) before 3.6.8 does not properly handle faults associated with the Chinese Remainder Theorem (CR
An issue was discovered in wolfSSL before 5.5.0 (when --enable-session-ticket is used); however, only version 5.3.0 is e
wolfSSL 4.6.x through 4.7.x before 4.8.0 does not produce a failure outcome when the serial number in an OCSP request di
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39575
GHSA-gq94-hf88-g4wv