FR
live
Networking High CVSS 8.2

OpenSSL patches a DTLS retransmission bug that leaks heap bytes in cleartext

On 29 September 2026, OpenSSL fixed CVE-2026-84782, an out-of-bounds read in DTLS retransmission that can expose heap memory as plaintext or crash the program. Upgrade to 4.0.3, 3.6.5, 3.5.9 or 3.4.8, then audit every binary that bundles its own OpenSSL.

A dark patch panel with a single RJ45 connector seated halfway in, one amber LED glowing on its port.

17 August 2026. Laurent Gaffie, a researcher at Secorizon, reports an anomaly in OpenSSL’s DTLS retransmission logic. 29 September 2026. The project ships fixes and documents CVE-2026-84782, an out-of-bounds read (CWE-125) that CISA rates at CVSS 8.2. 29 September 2026. Ubuntu and Debian publish their patched packages the same day. Why it matters: DTLS is TLS for UDP traffic — it protects WebRTC data channels and the key negotiation of encrypted calls. A flaw that leaks memory bytes to the peer undermines the confidentiality of the very channel meant to guarantee it.

The flaw: a resend that starts from the wrong place

DTLS splits a large handshake message into fragments that each fit in a single UDP datagram. If the transport cannot accept more data at that moment, a write can suspend mid-message (the WANT_WRITE state) and resume later. While a write is suspended, the retransmission timer can fire independently and resend an earlier message already considered sent.

That is where the code was wrong. Before the fix, the retransmission reused the suspended message’s position instead of resetting to the start of the message being resent. The resent message went out with a mislabelled header, and its body was leftover bytes from the larger message still in flight. The read could then run past the end of the buffer.

Two consequences follow, per OpenSSL: the mislabelled message can carry heap memory to the peer as plaintext handshake data, or — if the read reaches unmapped memory — crash the program. The first leaks confidentiality, the second hands over a denial of service. CISA summarised the impact in the vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H: confidentiality low, availability high, exploitation none at publication.

The flaw is not limited to client or server roles: OpenSSL tested the fix in both.

A quiet flaw with a wide surface

DTLS is not the protocol everyone thinks they know. It encrypts UDP traffic where classic TCP and TLS do not apply: WebRTC data channels, key setup for encrypted voice calls, some VPNs. An application is only exposed if it uses OpenSSL for DTLS — but that is more common than expected, because OpenSSL is often compiled statically or bundled into container images, firmware and desktop applications.

The distribution vendors’ wording exposes the severity gap. Ubuntu described the impact as “incorrect handshake behaviour or a denial of service”, without mentioning the memory leak. OpenSSL is more precise: the mislabelled message carries heap bytes “in cleartext”. This is not Heartbleed — the leak is not something an attacker can trigger on demand — but it depends on a synchronisation race, which makes it both hard to exploit and hard to dismiss.

The point is worth labouring because it changes the defensive posture. Heartbleed, in 2014, let an attacker ask for memory at will; here the leak is a side effect of a mispositioned resend. A defender cannot tell themselves “no public exploit, so no urgency”: the confidentiality is broken by construction, not by a proof of concept.

Which versions fix it — and which fix nothing

The fix is straightforward if you are on a supported branch.

  • OpenSSL 4.0 → 4.0.3 — public download, supported until 14 May 2027
  • OpenSSL 3.6 → 3.6.5 — public, until 1 November 2026
  • OpenSSL 3.5 → 3.5.9 — public, LTS until 8 April 2030
  • OpenSSL 3.4 → 3.4.8 — public, until 22 October 2026

The older branches are the real story. OpenSSL 3.0, 1.1.1 and 1.0.2 do get fixes — 3.0.23, 1.1.1zj, 1.0.2zs — but only for premium support customers. Public support for 3.0 ended on 7 September 2026, three weeks before this flaw. The 3.1, 3.2 and 3.3 branches were not checked.

OpenSSL lists no workaround for those who cannot update yet. Check your version, then the version of everything that links against the library:

bash
openssl version
# 4.0.x  -> >= 4.0.3   |   3.6.x -> >= 3.6.5
# 3.5.x  -> >= 3.5.9   |   3.4.x -> >= 3.4.8

Ubuntu fixed the flaw on 29 September in its own packages, which keep older version numbers: 26.04 LTS (libssl3t64 3.5.5-1ubuntu3.6), 24.04 LTS (libssl3t64 3.0.13-0ubuntu3.16) and 22.04 LTS (libssl3 3.0.2-0ubuntu1.30), with a reboot required. Debian published DSA-6531-1 for Debian 13 (package 3.5.7-1~deb13u3).

What an SRE should do right now

The priority is not patching one server; it is finding every copy of OpenSSL you run without knowing it.

  • Inventory embedded binaries. A container image that compiles OpenSSL statically will not be fixed by the host package. trivy, grype or docker scout must surface CVE-2026-84782 if your vulnerability databases are current.
  • Treat dead branches as risk, not legacy. A server on OpenSSL 3.0 without a premium contract will not get this fix. Migrate to 3.5 LTS rather than hand-rolling a rebuild.
  • Do not stop at the system package version. The host libssl can be current while an embedded Python, Node or Go application runs on a vulnerable copy. Static bundling is the classic blind spot.
  • Watch DTLS retransmission if you expose it. A spike in handshake errors or crashes from a WebRTC service deserves a look, even without proof of exploitation.

The thing to internalise is that the leak is silent. A resend that exposes sixteen heap bytes triggers no alert; closing the channel takes a patch, not detection.

Verdict

If you run OpenSSL 3.4, 3.5, 3.6 or 4.0, update now — the fix is public, tested in both roles, and the High severity means OpenSSL’s own policy calls for applying it “as soon as possible”. If you are still on 3.0, 1.1.1 or 1.0.2 without premium support, you are effectively out of fixes: schedule the migration to 3.5 LTS as a security project, not a maintenance chore. If you operate WebRTC or encrypted telephony services, treat CVE-2026-84782 as a potential confidentiality leak and force the update across the whole chain, down to the container images.

References

cve

Linked vulnerabilities

CVE-2026-84782Issue summary: The DTLS retransmission logic does not correctly handle a handshake message write that is suspended part-way through. The retransmitted message can be read past the message buffer and the retransmission overwrites the internal state the suspended write needs to resume correctly. Impact summary: The retransmitted message can disclose a heap memory to the peer as plaintext handshake data or cause a crash and a Denial of Service when the read reaches an unmapped memory region. CWE: CWE-125: Out-of-bounds Read Description: DTLS handshake messages can be written out in multiple fragments, and a write can suspend mid-message (returning WANT_WRITE) if the underlying transport temporarily cannot accept more data. While such a write is suspended, the DTLS retransmission timer may independently fire and ask the retransmission logic to resend an earlier, already-acknowledged-as-sent message from its retransmit queue. The retransmission logic reused the same internal buffer and position tracking as the message that was still being written, without resetting the position back to the start of the message being retransmitted. As a result the retransmission was read starting from wherever the suspended write had left off, producing a mislabelled message whose body was leftover bytes from the other, larger message still in flight - content that was never meant to be sent at that point, and which could run past the end of the allocated buffer. Separately, even when the retransmission is positioned correctly, allowing it to run to completion while another write is suspended overwrites the same shared bookkeeping that the suspended write depends on to resume. When the application later resumes the suspended write (via a subsequent SSL_read(), SSL_write(), SSL_accept(), or SSL_connect() call), it finds that bookkeeping in a state inconsistent with the message and aborts the process in a debugging build. The fix resets the retransmission's read position to the start of the message before resending, and skips retransmission entirely whenever a handshake write is still suspended, deferring to the next call that resumes it instead. FIPS impact: no The affected code is outside the FIPS module boundary.Openssl High CVSS 8.2 29/09

The cyber brief, every Tuesday

The flaws that matter and the patches to apply, in a ten-minute read.

No spam. One-click unsubscribe.
read next

On the same topic

eMudhra exits the TLS certificate market after 8 intermediate CA keys are found trivially guessable

On October 22, 2026, Indian certificate authority eMudhra announced it will withdraw from the global SSL/TLS certificate business, five days after a researcher recovered the private keys of eight intermediate CA certificates — every one of them below 256. If your organization issues certificates under the emSign ECC Root CA - G3 root, you have until October 27 to move to another hierarchy.

The FCC and four US states target TP-Link while five Aginet flaws remain unpatched

On October 6, 2026, Florida, Iowa, Montana and Nebraska sued TP-Link for misleading consumers about router security, while the FCC still denies it an exemption to the ban on routers made outside the US. In parallel, SEC Consult detailed five flaws in the Aginet line — CVE-2025-30237 through CVE-2025-30241 — some of which will never be patched on affected models: inventory your TP-Link hardware before trusting its update channel.

← Back to the feed

Type at least two characters.

↑ ↓ navigate ↵ open esc dismiss