CVE-2026-15442: Heap use-after-free on read during bidirectional (D)TLS shutdown
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 wolfSSLread() which is sometimes caused by a small user buffer passed in, then called wolfSSLshutdown for a bidirectional close and attempted to wolfSSLread() 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 Software
Event History
Frequently Asked Questions
Which deployments are exposed to this issue?
All wolfSSL builds that use (D)TLS are affected, including default builds. The issue is relevant only when the application performs the specific read and bidirectional shutdown sequence described.
What sequence is required to trigger the use-after-free?
The application must receive a partial wolfSSL_read(), which can occur when a small user buffer is supplied, then call wolfSSL_shutdown() for a bidirectional close and call wolfSSL_read() again while the peer continues sending data during shutdown.
Can a remote peer contribute to exploitation?
Yes. The triggering condition includes the peer continuing to send data while the application is performing bidirectional TLS shutdown. The application must also make another wolfSSL_read() call after initiating that shutdown.