← Back to Feed CACHED · 2026-08-26 09:45:53 · CACHE_KEY CVE-2026-54874
CVE-2026-54874 · CWE-405 · Disclosed 2026-08-25

Issue summary: Receiving a DTLS record for a future epoch while a handshake is in progress causes OpenSSL…

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Like leaving the garden hose running in a side shed nobody visits, while the vendor screams about a burst main

CVE-2026-54874 is a memory-amplification denial-of-service in OpenSSL's DTLS handshake path. When a DTLS handshake is in progress, OpenSSL buffers incoming records destined for a future epoch. The bug is that it retains the entire ~16 KB read buffer per record instead of just the payload bytes. An unauthenticated remote peer can send many small forged records, causing the endpoint to retain roughly 1.7 MB per connection — an approximately 1,200× memory amplification factor. Affected versions span nearly every supported branch: OpenSSL 4.0.0–4.0.1, 3.6.0–3.6.3, 3.5.0–3.5.7, 3.4.0–3.4.6, 3.0.0–3.0.21, 1.1.1 before 1.1.1zi, and 1.0.2 before 1.0.2zr.

The NVD-style CVSS score of 7.5 HIGH overstates the real-world risk. OpenSSL's own advisory rates this Low severity — and they're closer to correct. The flaw is confined to DTLS, a protocol with a dramatically smaller internet footprint than TLS. Most enterprises don't expose DTLS services at all; the main consumers are VPN concentrators (e.g., Cisco AnyConnect DTLS mode), WebRTC infrastructure, and some IoT/CoAP deployments. The impact ceiling is availability loss — no code execution, no data leakage, no integrity compromise. A 1,200× amplification factor sounds scary in isolation, but 1.7 MB per connection means an attacker needs thousands of concurrent connections to exhaust even a modestly provisioned server, and connection-rate limiting or DTLS cookie verification blunts this further.

"DTLS-only memory amplification DoS — niche protocol limits real-world blast radius to MEDIUM"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Identify a DTLS endpoint

The attacker scans for UDP services running DTLS (typically port 443/UDP for VPNs, or application-specific ports for WebRTC/CoAP). Shodan and Censys historically show fewer than 16,000 publicly reachable OpenSSL-based DTLS endpoints globally. Most enterprise DTLS usage is behind VPN concentrators that front their own DTLS stacks (Cisco, Palo Alto) rather than raw OpenSSL.
Conditions required:
  • Target must expose a DTLS service built on a vulnerable OpenSSL version
Where this breaks in practice:
  • DTLS exposure is a tiny fraction of TLS exposure — most enterprises have zero public DTLS endpoints running raw OpenSSL
  • VPN appliances typically use their own DTLS implementations, not stock OpenSSL
Detection/coverage: Shodan/Censys can enumerate DTLS endpoints. Nessus plugin 339518 covers OpenSSL 3.0.x < 3.0.22.
STEP 02

Initiate DTLS handshake

The attacker begins a legitimate DTLS ClientHello to put the server into handshake state. This is required because the vulnerable buffering only occurs while a handshake is in progress. No authentication or valid credentials are needed — the handshake initiation is unauthenticated by design.
Conditions required:
  • Network reachability to the DTLS port (UDP)
Where this breaks in practice:
  • DTLS cookie exchange (HelloVerifyRequest) may be enabled, requiring the attacker to use a real source IP — prevents spoofed-source amplification
  • Rate limiting on new handshakes is common on production DTLS servers
Detection/coverage: Network IDS can flag anomalous volumes of DTLS ClientHello packets from a single source.
STEP 03

Send many small future-epoch records

While the handshake is in progress, the attacker sends numerous small DTLS records with epoch numbers ahead of the current handshake state. OpenSSL queues each record and allocates a full ~16 KB read buffer per record, even though the actual payload may be only a few bytes. Up to 100 records can be buffered per connection, yielding ~1.7 MB retained memory per connection.
Conditions required:
  • Handshake must be in progress (achieved in step 2)
  • Server must be running a vulnerable OpenSSL version
Where this breaks in practice:
  • 100-record queue limit caps per-connection amplification at ~1.7 MB
  • Attacker needs thousands of concurrent connections to exhaust multi-GB server memory
  • Server-side connection limits, firewall session caps, and UDP flood protections reduce throughput
Detection/coverage: Memory monitoring and connection-count anomaly detection on DTLS services.
STEP 04

Exhaust server memory for DoS

By maintaining thousands of concurrent half-open DTLS handshakes, each with buffered future-epoch records, the attacker aims to exhaust available memory on the target server. At 1.7 MB per connection, exhausting 8 GB requires roughly 4,700 simultaneous connections. The result is denial of service — the DTLS endpoint becomes unresponsive or the process is OOM-killed.
Conditions required:
  • Sustained network access to maintain thousands of concurrent UDP sessions
  • Target server lacks connection-rate or memory-usage limits
Where this breaks in practice:
  • 4,700+ concurrent connections is achievable but detectable
  • Most production deployments have OS-level or application-level connection caps well below this
  • cgroups / container memory limits will kill the process before system-wide impact
  • Cloud-based DTLS services often auto-scale
Detection/coverage: OS-level OOM alerts, process memory monitoring, connection-count thresholds.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNone observed. Not listed in CISA KEV. No known campaigns targeting this flaw as of 2026-08-26.
Proof of conceptNo public PoC. The vulnerability was responsibly disclosed by Amazon Web Services on 2026-05-18 and patched by Matt Caswell. Crafting a PoC is straightforward (send future-epoch DTLS records during handshake) but no repos or scripts have surfaced.
EPSS scoreNot yet scored (CVE published 2026-08-25). Expected to be low given DoS-only impact, DTLS niche, and no PoC.
KEV statusNot listed. No CISA KEV entry as of 2026-08-26.
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H — Network-reachable, no privileges, availability-only impact. NVD scores 7.5 HIGH; OpenSSL project rates Low.
Affected versionsOpenSSL 4.0.0–4.0.1, 3.6.0–3.6.3, 3.5.0–3.5.7, 3.4.0–3.4.6, 3.0.0–3.0.21, 1.1.1 before 1.1.1zi, 1.0.2 before 1.0.2zr
Fixed versionsOpenSSL 4.0.2, 3.6.4, 3.5.8, 3.4.7, 3.0.22, 1.1.1zi, 1.0.2zr. Distro backports expected within days for RHEL, Ubuntu, Debian, SUSE.
Exposure dataCensys historically shows ~7,000 internet-exposed DTLS endpoints running vulnerable OpenSSL. Shodan shows <16,000 total. This is orders of magnitude smaller than TLS exposure.
Disclosure date2026-08-25 (public advisory). Reported to OpenSSL on 2026-05-18.
ReporterAmazon Web Services (responsible disclosure). Fix by Matt Caswell (OpenSSL).
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.0/10)

The single most decisive factor is protocol-scope limitation: this flaw only affects DTLS, a niche UDP-based protocol with a tiny fraction of TLS's deployment footprint, and the impact ceiling is availability loss with a modest 1,200x amplification factor capped at ~1.7 MB per connection. OpenSSL's own project rates this Low severity, and the NVD 7.5 HIGH score fails to account for the narrow real-world exposure and bounded amplification.

HIGH Vulnerability mechanics and affected versions
HIGH Severity downgrade rationale
MEDIUM Internet exposure estimates (based on historical Shodan/Censys data)

Why this verdict

  • Protocol scope narrows exposure dramatically. DTLS is used by a small subset of OpenSSL deployments. Most enterprise TLS/HTTPS servers are unaffected. The reachable population is <1% of the total OpenSSL installed base.
  • Availability-only impact with bounded amplification. The 1,200x factor sounds large but caps at ~1.7 MB per connection. Exhausting 8 GB RAM requires ~4,700 concurrent connections — detectable and throttleable. No confidentiality or integrity impact.
  • OpenSSL's own severity rating is Low. The vendor who wrote the code and reviewed the bug rates this Low, not High. The NVD CVSS score mechanically reflects AV:N/PR:N/A:H but ignores practical deployment context.
  • Role multiplier: For *VPN concentrators* using DTLS (Cisco AnyConnect, OpenConnect): the chain could succeed and cause VPN service outage — blast radius is service-level, not domain/fleet/data. However, most commercial VPN appliances use their own DTLS stacks, not stock OpenSSL. For *WebRTC infrastructure*: DoS of a media server is disruptive but bounded to that service. For *IoT/CoAP gateways*: DTLS DoS could disrupt sensor telemetry but doesn't enable lateral movement. No high-value role yields domain takeover, fleet compromise, or supply-chain impact — the floor rule for HIGH is not triggered.
  • Multiple friction points compound. DTLS cookie verification (HelloVerifyRequest) prevents spoofed-source amplification. Connection-rate limits, firewall UDP session caps, and cgroups/container memory limits all independently reduce the blast radius.

Why not higher?

Upgrading to HIGH would require either active exploitation, a larger blast radius (RCE/data breach), or the DTLS endpoint being a canonical high-value component where DoS equates to fleet-scale impact. None of these conditions hold: no exploitation is observed, the impact is bounded availability loss, and DTLS endpoints represent a tiny sliver of the OpenSSL installed base. The vendor themselves rate this Low.

Why not lower?

Downgrading to LOW would underweight the fact that this is unauthenticated and network-reachable with no user interaction. VPN gateways and WebRTC servers *do* exist in production and a sustained DoS against them has real business impact. The 1,200x amplification factor, while bounded, is non-trivial and the fix spans every supported OpenSSL branch, indicating broad code-level exposure.

05 · Compensating Control

What to do — in priority order.

  1. Enable DTLS cookie verification (HelloVerifyRequest) — This forces attackers to complete a stateless cookie exchange before the server allocates handshake state, preventing spoofed-source attacks and adding friction. Set SSL_OP_COOKIE_EXCHANGE or use DTLSv1_listen(). Deploy within the noisgate MEDIUM remediation window (365 days), though sooner is better if you have public DTLS endpoints.
  2. Rate-limit new DTLS handshakes per source IP — Configure your firewall or load balancer to cap new UDP session initiation rates to DTLS ports. This directly limits the attacker's ability to open thousands of concurrent connections needed to exhaust memory.
  3. Set process-level memory limits (cgroups/ulimits) — Ensure DTLS-serving processes run under cgroups or ulimit constraints so that memory exhaustion kills the process rather than the host. Combine with a process supervisor for automatic restart.
  4. Patch to fixed OpenSSL version — Upgrade to OpenSSL 4.0.2, 3.6.4, 3.5.8, 3.4.7, 3.0.22, 1.1.1zi, or 1.0.2zr. This is the definitive fix. Apply within the noisgate MEDIUM remediation window of 365 days.
What doesn't work
  • TLS-layer WAFs and reverse proxies — these operate on TCP/TLS and do not inspect or proxy DTLS (UDP) traffic. They provide zero protection for this vulnerability.
  • Disabling TLS 1.0/1.1 — this CVE is about DTLS, not TLS. Disabling old TLS versions has no effect on DTLS handshake buffering.
  • Certificate pinning or mutual TLS — the vulnerable buffering occurs before authentication completes during the handshake, so mTLS does not prevent the memory amplification.
06 · Verification

Crowdsourced verification payload.

Run this script on each host where OpenSSL is installed (or where a DTLS-serving application links against OpenSSL). It checks the installed openssl binary version against the known fixed versions. Requires no special privileges. Example: bash check_cve_2026_54874.sh

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_54874.sh — Check for CVE-2026-54874 (DTLS memory amplification)
# Run on target hosts. No privileges required.
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -euo pipefail

VERSION_STR=$(openssl version 2>/dev/null || true)
if [ -z "$VERSION_STR" ]; then
  echo "UNKNOWN — openssl binary not found in PATH"
  exit 2
fi

# Extract version number, e.g. "4.0.1" from "OpenSSL 4.0.1 ..."
VER=$(echo "$VERSION_STR" | grep -oP '\d+\.\d+\.\d+[a-z]*' | head -1)
if [ -z "$VER" ]; then
  echo "UNKNOWN — could not parse version from: $VERSION_STR"
  exit 2
fi

# Compare using sort -V (version sort)
check_fixed() {
  local current="$1" fixed="$2"
  if [ "$(printf '%s\n%s' "$fixed" "$current" | sort -V | head -1)" = "$fixed" ]; then
    return 0  # current >= fixed
  fi
  return 1
}

case "$VER" in
  4.0.*)
    if check_fixed "$VER" "4.0.2"; then
      echo "PATCHED — $VERSION_STR (fixed in 4.0.2)"
      exit 0
    fi
    ;;
  3.6.*)
    if check_fixed "$VER" "3.6.4"; then
      echo "PATCHED — $VERSION_STR (fixed in 3.6.4)"
      exit 0
    fi
    ;;
  3.5.*)
    if check_fixed "$VER" "3.5.8"; then
      echo "PATCHED — $VERSION_STR (fixed in 3.5.8)"
      exit 0
    fi
    ;;
  3.4.*)
    if check_fixed "$VER" "3.4.7"; then
      echo "PATCHED — $VERSION_STR (fixed in 3.4.7)"
      exit 0
    fi
    ;;
  3.0.*)
    if check_fixed "$VER" "3.0.22"; then
      echo "PATCHED — $VERSION_STR (fixed in 3.0.22)"
      exit 0
    fi
    ;;
  1.1.1*)
    echo "VULNERABLE — $VERSION_STR (check if >= 1.1.1zi with distro backport)"
    exit 1
    ;;
  1.0.2*)
    echo "VULNERABLE — $VERSION_STR (check if >= 1.0.2zr with distro backport)"
    exit 1
    ;;
  *)
    echo "UNKNOWN — unrecognized OpenSSL branch: $VERSION_STR"
    exit 2
    ;;
esac

echo "VULNERABLE — $VERSION_STR"
exit 1
07 · Bottom Line

If you remember one thing.

TL;DR
This is a DTLS-only denial-of-service with bounded memory amplification and zero exploitation in the wild. noisgate downgrades from the NVD HIGH 7.5 to MEDIUM 5.0, aligning with OpenSSL's own Low rating while acknowledging unauthenticated network reachability. There is no mitigation SLA at MEDIUM — go straight to the noisgate remediation SLA of 365 days to apply the vendor patch (OpenSSL 4.0.2 / 3.6.4 / 3.5.8 / 3.4.7 / 3.0.22 / 1.1.1zi / 1.0.2zr). If you operate public-facing DTLS services (VPN gateways, WebRTC, CoAP), prioritize those hosts first and consider enabling DTLS cookie verification and connection-rate limiting as compensating controls in the interim. For the vast majority of your 10,000 hosts that only use TLS over TCP, this CVE is irrelevant — fold it into your next regular OpenSSL update cycle.

Sources

  1. OpenSSL Vulnerabilities Page
  2. OpenSSL 3.5 Series Release Notes
  3. CyberPress — OpenSSL Patches Nine Vulnerabilities
  4. CybersecurityNews — Multiple OpenSSL Flaws
  5. Tenable Plugin 339518 — OpenSSL 3.0.x < 3.0.22
  6. Canadian Centre for Cyber Security — OpenSSL Advisory AV26-058
  7. TheHackerWire — CVE-2026-54874 Info
  8. LinuxCompatible — OpenSSL 4.0.2 Patches
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.