OpenSSL Flaw Could Expose Heap Memory and Crash Applications
30 September 2026 at 05:05
![]()
How CVE-2026-84782 Breaks OpenSSL's DTLS Retransmission Logicย
DTLS is built for datagram-based transports, where packets can go missing, so it includes retransmission mechanisms to recover lost handshake packets. That recovery feature is where the problem lies.ย The trouble starts when an application sends a DTLS handshake message in several fragments and the transport temporarily stops accepting data. OpenSSL may then return a WANT_WRITE status, pausing the handshake write partway through. While the write is suspended, a DTLS retransmission timer can expire and try to resend an earlier handshake message from the retransmission queue.ย At that point, OpenSSL's retransmission code wrongly reuses the internal buffer and tracking state tied to the paused write. Instead of resetting its read position to the start of the queued message, it may begin at the offset the in-progress write had already reached.ย As a result, a peer can receive a malformed or mislabeled DTLS handshake message containing leftover bytes from an unrelated, larger message still in transit. In some cases, the read extends past the intended buffer, exposing heap-resident data in plaintext.ยMemory Disclosure and Crash Risksย
The weakness is classified as CWE-125, an out-of-bounds read, and its main security impact is unintended disclosure of heap memory to the remote DTLS peer. What leaks depends on the process's memory contents and runtime conditions, and it could include fragments of previously allocated application or library data. The advisory, however, has not confirmed any reliable arbitrary-memory disclosure capability.ย The bug can also crash a process if the retransmission logic reads from an unmapped memory region, creating a denial-of-service risk for applications that handle attacker-controlled DTLS traffic.ย A related issue in the same retransmission path can corrupt the bookkeeping needed to resume the suspended handshake write. If a retransmission occurs while another write is still paused, later calls to SSL_read(), SSL_write(), SSL_accept(), or SSL_connect() may run into inconsistent states, triggering an abort in debugging builds.ยOpenSSL Releases Fixes for the DTLS Vulnerabilityย
OpenSSL fixed the problem by resetting the retransmission read position before a message is resent. The patch also skips retransmissions while a handshake write is suspended, deferring them until the application resumes the pending operation.ย| Affected branchย | Fixed releaseย |
| OpenSSL 4.0ย | 4.0.3ย |
| OpenSSL 3.6ย | 3.6.5ย |
| OpenSSL 3.5ย | 3.5.9ย |
| OpenSSL 3.4ย | 3.4.8ย |
| OpenSSL 3.0 Premium Supportย | 3.0.23ย |
| OpenSSL 1.1.1 Premium Supportย | 1.1.1zjย |
| OpenSSL 1.0.2 Premium Supportย | 1.0.2zsย |