CVE-2026-3549
wolfSSL vulnerability analysis and mitigation

Overview

CVE-2026-3549 is a heap-based buffer overflow vulnerability in wolfSSL's TLS 1.3 Encrypted Client Hello (ECH) extension parsing logic. An integer underflow in TLSX_ECH_Parse() when calculating a buffer length from the attacker-controlled innerClientHelloLen field causes writes beyond the bounds of an allocated heap buffer. All wolfSSL versions prior to 5.9.0 are affected when ECH is explicitly enabled (ECH is disabled by default). The vulnerability was disclosed on March 19, 2026, and carries a CVSS v3.1 base score of 9.8 (Critical) and a CVSS v4.0 base score of 8.3 (High) (Feedly, wolfSSL PR #9817).

Technical details

The root cause is an integer underflow (CWE-122: Heap-based Buffer Overflow) in TLSX_ECH_Parse() within src/tls.c. When parsing the innerClientHelloLen field of a TLS 1.3 ECH extension, the code subtracts WC_AES_BLOCK_SIZE (16 bytes) from the attacker-supplied innerClientHelloLen value without first verifying that the value is large enough. If innerClientHelloLen is between 0 and 15, the subtraction wraps around a word16 (unsigned 16-bit integer) to approximately 65,520, causing a subsequent XMEMSET to write far beyond the allocated buffer boundary and wc_AesGcmDecrypt to over-read the heap. The fix adds a bounds check before the subtraction, returning BUFFER_ERROR if the field is too small (wolfSSL PR #9817). Exploitation requires that ECH has been explicitly enabled in the wolfSSL build, which is not the default configuration (Feedly).

Impact

Successful exploitation can result in denial of service (process crash), sensitive information disclosure from heap memory, or remote code execution — all achievable by a network-adjacent attacker without authentication or user interaction. The vulnerability affects the confidentiality, integrity, and availability of any application embedding wolfSSL with ECH enabled, including embedded systems, IoT devices, and server-side TLS endpoints. Because wolfSSL is widely used in resource-constrained environments, a heap overflow in the TLS handshake path could enable an attacker to pivot further into a network or compromise cryptographic material (Feedly).

Exploitation steps

  1. Reconnaissance: Identify services using wolfSSL versions prior to 5.9.0 with ECH explicitly enabled, using TLS fingerprinting tools (e.g., jarm, tlsx) or by inspecting application documentation and build configurations.
  2. Craft malicious TLS ClientHello: Construct a TLS 1.3 ClientHello packet containing a malformed ECH extension where the innerClientHelloLen field is set to a value between 0 and 15 (e.g., 0x00 or 0x0F).
  3. Trigger integer underflow: Send the crafted packet to the target server. The vulnerable TLSX_ECH_Parse() function subtracts WC_AES_BLOCK_SIZE (16) from the small innerClientHelloLen value, causing a word16 underflow to ~65,520.
  4. Heap buffer overflow: The underflowed length is passed to XMEMSET, writing zeros far beyond the allocated buffer on the heap, corrupting adjacent heap metadata or data structures.
  5. Achieve objective: Depending on heap layout and target platform, the attacker may cause a crash (DoS), leak adjacent heap contents (information disclosure), or achieve code execution by overwriting function pointers or other control-flow data (wolfSSL PR #9817, Feedly).

Indicators of compromise

  • Network: Unexpected or malformed TLS 1.3 ClientHello packets containing ECH extensions with anomalously small innerClientHelloLen values (0–15); repeated TLS handshake failures from a single source IP targeting ECH-enabled endpoints.
  • Logs: TLS library error logs showing BUFFER_ERROR or unexpected handshake termination during ECH parsing; application crash logs or core dumps originating from wolfSSL's TLSX_ECH_Parse() or wc_AesGcmDecrypt() functions.
  • Process: Unexpected process crashes or restarts of services using wolfSSL; heap corruption signals such as SIGABRT or SIGSEGV from the TLS service process.
  • File System: Core dump files generated by the TLS service process following unexpected termination (wolfSSL PR #9817).

Mitigation and workarounds

The primary remediation is to upgrade wolfSSL to version 5.9.0 or later, which includes the fix merged on February 26, 2026 (wolfSSL PR #9817). If immediate patching is not feasible, ensure that ECH support remains disabled (the default configuration), which eliminates the attack surface entirely. Additionally, implement network segmentation to restrict TLS traffic to trusted endpoints, and monitor for unusual TLS handshake failures or service crashes that may indicate exploitation attempts (Feedly).

Community reactions

The vulnerability was discovered through static code analysis using wolfSSL's internal Fenrir tooling and was reported and fixed by wolfSSL team member LinuxJedi (wolfSSL PR #9817). A Bluesky post from a CVE tracking account noted the disclosure shortly after publication. Coverage has been limited to automated vulnerability databases and aggregators, consistent with the low exploitation risk due to ECH being disabled by default (Feedly).

Additional resources


SourceThis report was generated using AI

Related wolfSSL vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-6330MEDIUM6.3
  • wolfSSL logowolfSSL
  • wolfssl
NoYesJun 25, 2026
CVE-2026-8720MEDIUM5.9
  • wolfSSL logowolfSSL
  • wolfssl
NoYesJun 25, 2026
CVE-2026-7511MEDIUM5.9
  • wolfSSL logowolfSSL
  • cpe:2.3:a:wolfssl:wolfssl
NoYesJun 25, 2026
CVE-2026-7532MEDIUM5.7
  • wolfSSL logowolfSSL
  • wolfssl
NoYesJun 25, 2026
CVE-2026-6331LOW2.1
  • wolfSSL logowolfSSL
  • cpe:2.3:a:wolfssl:wolfssl
NoYesJun 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management