Security

CVE-2026-84782: The OpenSSL DTLS Flaw Your Package Manager Won’t Tell You About

Illustration representing openssl

A High-Severity OpenSSL Flaw That Only Affects One Specific Protocol Mode

OpenSSL shipped patches in late September 2026 for CVE-2026-84782, a high-severity flaw (CVSS 8.2) in its DTLS implementation, the UDP-based variant of TLS used for things like VPNs, VoIP, and WebRTC rather than standard HTTPS traffic. The bug sits in how DTLS handles retransmitted handshake messages: when a resend timer fires mid-transmission, the retransmission reuses the original message’s buffer position instead of restarting from the beginning, which can cause leftover bytes from a larger prior message to get sent out, unencrypted, labeled as something else.

The project has not said whether an attacker can cause a resend while a message is stuck, and the practical result is a potential leak of server heap memory in plaintext, or a denial-of-service condition if the malformed handshake crashes the process instead.

Every major branch still in use is affected: 4.0, 3.6, 3.5, 3.4, 3.0, 1.1.1, and 1.0.2. Public patches landed in 4.0.3, 3.6.5, 3.5.9, and 3.4.8; the older 3.0, 1.1.1, and 1.0.2 branches only get a fix through OpenSSL’s premium support program, meaning a server still on one of those end-of-life branches without a paid support contract has no vendor patch coming at all.

How This Compares to Heartbleed and Why the Blast Radius Is Smaller

Heartbleed (CVE-2014-0160) was also a heap memory disclosure bug in OpenSSL, triggered over the standard TLS heartbeat extension, and it affected roughly the majority of HTTPS servers running OpenSSL at the time, because nearly every TLS server implements heartbeats. CVE-2026-84782 shares the same basic failure mode, a remote trigger that leaks server heap memory, but it’s scoped to DTLS specifically, a protocol mode most web servers never enable in the first place. Heartbleed’s attack surface was almost any HTTPS server, while this one’s attack surface is servers specifically running a VPN, VoIP, or WebRTC service over DTLS, a meaningfully smaller set of machines, even though the underlying bug class and severity rating look similar on paper.

Why ‘openssl version’ Alone Doesn’t Tell the Whole Story

The standard advice circulating for this CVE is to run openssl version and compare the result against the patched list above. That check is necessary but insufficient on a typical VPS or dedicated server, because it only reports the system package manager’s OpenSSL build, the one your OS-level packages link against by default. It says nothing about OpenSSL versions bundled inside a Docker image, statically compiled into a custom-built nginx or HAProxy binary, vendored into a Node.js or Python dependency, or shipped inside a third-party application’s own install directory. A server can show a fully patched system OpenSSL version while still running three or four other services, each carrying its own older, unpatched copy.

Finding those requires a different check than a single version command. For Docker, that means checking the base image tags of every running container (docker exec <container> openssl version per container, rather than just the host). For anything compiled from source, grepping build logs or running ldd $(which <binary>) | grep ssl against custom binaries shows which OpenSSL shared library they link against, and whether it’s the system one or a bundled copy sitting in a nonstandard path.

Protocol Usage on a Typical Server

Regular HTTPS web traffic, SSH, and most API calls run over TLS on top of TCP, which this CVE does not touch at all. DTLS specifically backs protocols built on UDP where a lighter-weight, connectionless handshake matters: VPN gateways that use DTLS (such as ocserv/OpenConnect-style servers; note that OpenVPN’s UDP mode uses its own TLS-over-UDP protocol rather than DTLS, so it is not the target here), WebRTC media streams used by video chat or browser-based calling features, SIP-over-DTLS VoIP setups, and some custom real-time or game server protocols.

A standard WordPress, PrestaShop, or OpenCart site running purely over HTTPS has no DTLS exposure from this specific CVE, even on an unpatched install, because nothing on that server is invoking the DTLS code path.

That matters for prioritization. A server running a DTLS-based VPN gateway or a WebRTC-based application should treat this as an urgent patch. A server that’s purely a web stack with no VPN or real-time media component is lower urgency for this particular flaw, though still worth patching on general principle the next time a maintenance window is available, since its updates bundle fixes for other issues too.

Confirming Active Services Before You Patch

Check what’s listening: sudo ss -lunp lists every process with a UDP socket open, which is the prerequisite for anything DTLS-related; cross-reference that list against the services above. If a DTLS-based VPN gateway, a SIP server, or a WebRTC gateway shows up, that process’s TLS library dependency is the one to verify and patch first, rather than just the system-wide package.

Patching Without Breaking a Live Server

For most Linux distributions, the system package updates through the normal package manager (apt update && apt upgrade openssl on Debian/Ubuntu-based systems, dnf upgrade openssl on RHEL-based ones) once the distro’s maintainers backport the fix, which for a flaw this severity usually happens within days of upstream’s release rather than waiting for the next major OS version. Services with their own bundled or statically linked OpenSSL need an explicit rebuild or image update instead; a Docker container just needs a newer base image pulled and redeployed, while a source-compiled service needs recompiling against the patched OpenSSL source and a restart.

In both cases, a brief service restart is required for the running process to pick up the new library, since replacing the file on disk doesn’t retroactively patch a process already holding the old version in memory.

A Practical Checklist

Run openssl version to check the system package, but don’t stop there. Run sudo ss -lunp to see which processes have UDP sockets open, since those are the only candidates for DTLS exposure in the first place. For any that show up, check whether they use the system library or a bundled copy (container image tag, ldd against the binary, or the application’s own changelog). Patch the system package through your distro’s normal update path, rebuild or redeploy anything with its own bundled copy, and restart every affected service afterward, since an unpatched library already loaded into a running process stays unpatched until that process restarts.

If you’re running a server on AllCloudHost’s VPS or dedicated hosting with full root access, this patching responsibility sits with the account holder rather than the host, which is why knowing what is exposed matters more than a generic update reminder.

Further reading: OpenSSL: Vulnerabilities and security advisories.