In all builds that make use of (D)TLS, including default builds, there is a series of conditional states during the TLS shutdown which could lead to a heap-use-after free. If an application ended up getting a partial wolfSSL_read() which is sometimes caused by a small user buffer passed in, then called wolfSSL_shutdown for a bidirectional close and attempted to wolfSSL_read() again while the peer continues trying to send data during the shutdown it would lead to a state where a potential heap-use-after free happened.
PUBLISHED5.2CWE-416
Heap use-after-free on read during bidirectional (D)TLS shutdown
Problem type
Affected products
wolfSSL
wolfSSL
<= 5.9.2 - AFFECTED
References
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-15442Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-15442",
"assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
"assignerShortName": "wolfSSL",
"dateUpdated": "2026-09-27T09:24:31.594Z",
"dateReserved": "2026-07-10T19:09:12.486Z",
"datePublished": "2026-09-27T09:24:31.594Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
"shortName": "wolfSSL",
"dateUpdated": "2026-09-27T09:24:31.594Z"
},
"datePublic": "2026-09-26T12:00:00.000Z",
"title": "Heap use-after-free on read during bidirectional (D)TLS shutdown",
"descriptions": [
{
"lang": "en",
"value": "In all builds that make use of (D)TLS, including default builds, there is a series of conditional states during the TLS shutdown which could lead to a heap-use-after free. If an application ended up getting a partial wolfSSL_read() which is sometimes caused by a small user buffer passed in, then called wolfSSL_shutdown for a bidirectional close and attempted to wolfSSL_read() again while the peer continues trying to send data during the shutdown it would lead to a state where a potential heap-use-after free happened.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "In all builds that make use of (D)TLS, including default builds, there is a series of conditional states during the TLS shutdown which could lead to a heap-use-after free. If an application ended up getting a partial wolfSSL_read() which is sometimes caused by a small user buffer passed in, then called wolfSSL_shutdown for a bidirectional close and attempted to wolfSSL_read() again while the peer continues trying to send data during the shutdown it would lead to a state where a potential heap-use-after free happened."
}
]
}
],
"affected": [
{
"vendor": "wolfSSL",
"product": "wolfSSL",
"defaultStatus": "unaffected",
"versions": [
{
"version": "4.4.0",
"status": "affected",
"versionType": "semver",
"lessThanOrEqual": "5.9.2"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "CWE-416 Use After Free",
"cweId": "CWE-416",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://github.com/wolfSSL/wolfssl/pull/10863"
}
],
"metrics": [
{
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"credits": [
{
"lang": "en",
"value": "Fuzz0x team",
"type": "finder"
}
]
}
}
}