psf-openssl-check(8)
OpenSSL DTLS handshake retransmission read (heap disclosure): read-only checker (v1)
CVE-2026-84782
If this software is helpful, consider a donation to our 501c3 nonprofit:
https://privacysafe.foundation
OpenSSL's security release of 29 September 2026 fixed 14 flaws. One is rated High:
CVE-2026-84782, "DTLS retransmits handshake messages from a stale buffer offset".
When DTLS retransmits a handshake message it can read from the wrong place in a buffer,
so a remote peer may receive unintended plaintext heap memory in the handshake data, or
the program may crash. CISA scored it 8.2 (confidentiality low, availability high).
Found by Laurent Gaffie (Secorizon); fix by Ryan Hooper. The FIPS module is not affected.
It matters only to software that speaks DTLS (TLS over UDP): VPN servers such as ocserv,
VoIP and WebRTC servers such as Asterisk, FreeSWITCH, Janus and coturn, and IoT
endpoints. Ordinary TLS (HTTPS, SMTP, IMAP, databases) does not use the vulnerable
code. Node.js and Python's ssl module have no DTLS API.
Affected: 4.0.0 before 4.0.3, 3.6 before 3.6.5, 3.5 before 3.5.9, 3.4 before 3.4.8,
3.0 before 3.0.23, 1.1.1 before 1.1.1zj, 1.0.2 before 1.0.2zs.
Fixed: public releases 4.0.3, 3.6.5, 3.5.9, 3.4.8. The fixes for 3.0 (3.0.23),
1.1.1 (1.1.1zj) and 1.0.2 (1.0.2zs) are available only to premium-support
customers, and public support for 3.0 ended on 7 September 2026. Branches
3.1 to 3.3 are end of life and were not evaluated by OpenSSL.
Ubuntu: fixed in openssl 3.5.5-1ubuntu3.6 (26.04), 3.0.13-0ubuntu3.16 (24.04) and
3.0.2-0ubuntu1.30 (22.04); older Ubuntu releases were still "needs
evaluation". Other distributions backport under their own version numbers.
How this script decides. A distribution package is judged by its changelog naming
CVE-2026-84782 (a backport), and for Ubuntu also against the fixed package versions
above. A copy that no package owns (a local build, a bundled library) is judged by the
upstream version compared with the table. The script points you to your distribution's advisory when a
distribution package has no changelog entry and no published fixed version to compare.
It also reports DTLS-capable daemons that are running and processes still holding an
old libssl in memory (a library update does not reach a running process until it
restarts).
This script is read-only.
Usage:
./openssl-check.sh [check]
check (default) Exit 0 = nothing exposed, 1 = an affected or unconfirmed OpenSSL.
version print the script version.
Env: OPENSSL_BIN, OPENSSL_PKG_VERSION, OPENSSL_OS_RELEASE, OPENSSL_CHANGELOG, OPENSSL_PROC,
OPENSSL_NODE override the openssl command, the package version, /etc/os-release, a
changelog file (plain or .gz), /proc and the node command. OPENSSL_NO_PACKAGE=1 treats
the installed openssl as not owned by a package (a local build).
SCAN_CONTAINERS=1 (the default) also reads OpenSSL inside running docker and podman
containers, judged by each container's own distribution and packages; 0 skips them.The Security Patches software and this documentation are dedicated to the public domain under CC0 1.0 Universal. Other pages on privacysafe.app/docs are CC BY-SA 4.0 unless the page says otherwise.