Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Impact | CVSS 6.3 indicates moderate risk with limited practical impact. The vector AV:N/AC:L/PR:N allows unauthenticated remote triggering, but AT:P (Attack Time: Persistent) signals that exploitation requires sustained or repeated network interactions to reliably corrupt heap state. Impact scores VI:L and VA:L confirm low integrity and availability damage; VC:N, VI:L, VA:L suggest information disclosure and minor availability degradation rather than code execution or full system compromise. EPSS data is not provided, limiting probability assessment. The vulnerability is NOT confirmed in CISA KEV (no active exploitation signal), and no public proof-of-concept is referenced. Compared to heap overflows or write-what-where primitives, this use-after-free is constrained by the ForceZero() operation (limited write patterns-zero bytes only). Real-world risk depends on heap layout predictability and whether an attacker can control KyberKey recycling to leak sensitive data from adjacent heap allocations. For organizations using wolfSSL with TLS 1.3 PQC hybrid ciphers in production, this is a moderate-priority issue requiring timely patching; for others, risk is minimal. |
| Exploit ScenarioDerived | An unauthenticated remote attacker performs a TLS 1.3 handshake with a wolfSSL server configured to support PQC hybrid ciphers. The attacker crafts a malformed ClientKeyShare message containing invalid Kyber key data, triggering the error path in TLSX_KeyShare_ProcessPqcClient_ex(). The error handling immediately frees the KyberKey structure, but the subsequent TLSX_KeyShare_FreeAll() call writes zero bytes over the freed heap memory. By repeating this attack with heap spraying techniques, the attacker may corrupt adjacent heap allocations or trigger information disclosure if the freed memory is recycled for sensitive data structures. The AT:P timing constraint suggests this requires multiple handshake attempts to reliably achieve observable impact. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 10, 2026
Heap use-after-free in wolfSSL's TLS 1.3 post-quantum cryptography hybrid KeyShare processing allows unauthenticated remote attackers to corrupt heap memory and potentially disclose information. The vulnerability occurs when TLSX_KeyShare_ProcessPqcHybridClient() error handling prematurely frees a KyberKey object in src/tls.c, and the caller's subsequent TLSX_KeyShare_FreeAll() invocation writes zero bytes to already-freed memory. CVSS 6.3 reflects low integrity and availability impact; exploitation requires precise network timing (AT:P). No public exploit identified at time of analysis, but the underlying use-after-free pattern is a known attack vector in memory-unsafe code.
RemediationAI
Apply the patch available in wolfSSL GitHub pull request #10092 (https://github.com/wolfssl/wolfssl/pull/10092). The fix ensures that freed KyberKey objects are nullified or properly tracked to prevent double-free attempts in TLSX_KeyShare_FreeAll(). Users should upgrade to the patched version once released by wolfSSL. If immediate patching is not feasible, disable TLS 1.3 PQC hybrid cipher suites in production deployments by excluding post-quantum key-share negotiation from TLS configurations, though this sacrifices post-quantum security benefits. Contact wolfSSL (facts@wolfssl.com) for the exact patched version number and timeline.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
WolfSSL implements hybrid post-quantum cryptography (PQC) for TLS 1.3 by combining classical elliptic-curve cryptography with lattice-based algorithms like Kyber. The vulnerability lies in the interaction between two error-handling paths in src/tls.c: TLSX_KeyShare_ProcessPqcHybridClient() calls the internal function TLSX_KeyShare_ProcessPqcClient_ex(), which frees heap-allocated KyberKey objects on error conditions. The caller then invokes TLSX_KeyShare_FreeAll(), a generic cleanup function that attempts to zero-out (via ForceZero()) all cryptographic material in the KeyShare structure, including already-freed KyberKey pointers. This classic use-after-free (CWE-416) pattern occurs because the freed object is not nullified before the second deallocation attempt, allowing writes to recycled heap memory. The vulnerability is specific to PQC hybrid cipher suites negotiated during the TLS 1.3 handshake, requiring the attacker to trigger the error path in TLSX_KeyShare_ProcessPqcClient_ex().
Know when Wolfssl gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
2DescriptionCVE.org
A heap use-after-free exists in wolfSSL's TLS 1.3 post-quantum cryptography (PQC) hybrid KeyShare processing. In the error handling path of TLSX_KeyShare_ProcessPqcHybridClient() in src/tls.c, the inner function TLSX_KeyShare_ProcessPqcClient_ex() frees a KyberKey object upon encountering an error. The caller then invokes TLSX_KeyShare_FreeAll(), which attempts to call ForceZero() on the already-freed KyberKey, resulting in writes of zero bytes over freed heap memory.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in wolfSSL Cryptographic and Certificate Verification Flaws
View all 7wolfSSL 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
Authentication bypass in wolfSSL TLS clients built with Raw Public Key (RPK) support allows a malicious or on-path serve
wolfSSL builds that enable the WOLFSSL_TRUST_PEER_CERT macro can be induced to accept a forged clone of a trusted-peer C
Certificate forgery in the wolfSSL client (versions 5.7.2 through 5.9.2) lets a remote attacker who already holds any ce
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
EUVD-2026-21240
GHSA-w87p-fqgx-cqq8
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB