Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-34183

CVE-2026-34183: OpenSSL QUIC Denial of Service Vulnerability

CVE-2026-34183 is a denial of service flaw in OpenSSL QUIC that allows attackers to exhaust heap memory via PATH_CHALLENGE frame flooding. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2026-34183 Overview

CVE-2026-34183 is a denial-of-service vulnerability in the OpenSSL QUIC stack. A remote peer can exhaust heap memory on a QUIC server or client by flooding it with packets containing PATH_CHALLENGE frames. For every received PATH_CHALLENGE, the local QUIC stack allocates a corresponding PATH_RESPONSE frame that is only freed once the remote peer acknowledges it. A malicious peer never sends those acknowledgments, leading to unbounded memory growth and eventual abnormal termination of the application. The flaw is classified under [CWE-1325: Improperly Controlled Sequential Memory Allocation]. OpenSSL FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected because the QUIC stack lies outside the FIPS module boundary.

Critical Impact

A network-reachable attacker can trigger unbounded heap allocation in any OpenSSL-based QUIC server or client, causing process termination and Denial of Service without authentication or user interaction.

Affected Products

  • OpenSSL QUIC stack in vulnerable 3.x and 4.x branches (FIPS modules excluded)
  • Applications acting as QUIC servers built on OpenSSL
  • Applications acting as QUIC clients built on OpenSSL

Discovery Timeline

  • 2026-06-09 - CVE-2026-34183 published to NVD and OpenSSL Security Advisory released
  • 2026-06-10 - Last updated in NVD database

Technical Details for CVE-2026-34183

Vulnerability Analysis

The vulnerability resides in the receive-side processing of the OpenSSL QUIC stack. The QUIC protocol uses PATH_CHALLENGE frames for path validation, and the receiving endpoint must respond with a PATH_RESPONSE frame containing the echoed challenge data. OpenSSL queues each PATH_RESPONSE in its control frame queue (CFQ) and retains it until the peer acknowledges reception.

A malicious peer can exploit this by transmitting an unbounded stream of PATH_CHALLENGE frames while withholding acknowledgments. Each incoming frame results in a new heap allocation that is never released. Over time, the cumulative allocations exhaust available memory and force the host process to terminate. Because QUIC runs over UDP and the attack requires no handshake completion beyond what is needed to reach frame processing, the attack surface is broad.

Root Cause

The root cause is the absence of a cap on the number of pending PATH_RESPONSE frames retained while waiting for peer acknowledgment. The QUIC stack treats every PATH_CHALLENGE as legitimate work and allocates memory accordingly, with no rate limiting or queue ceiling applied to the receive path.

Attack Vector

The attack is remote and unauthenticated. An attacker establishes or initiates a QUIC connection to a vulnerable server or induces a vulnerable client to connect to a malicious server. The attacker then floods the peer with PATH_CHALLENGE frames at line rate, forcing heap growth until the process aborts.

c
// Patch excerpt: include/internal/quic_cfq.h
 QUIC_CFQ_ITEM *ossl_quic_cfq_item_get_priority_next(const QUIC_CFQ_ITEM *item,
     uint32_t pn_space);
 
+int ossl_quic_cfq_discard_unreliable(QUIC_CFQ *cfq, QUIC_CFQ_ITEM *item);
 #endif
 
 #endif

// Patch excerpt: include/internal/quic_channel.h
 void ossl_quic_channel_set_tcause(QUIC_CHANNEL *ch, uint64_t app_error_code,
     const char *app_reason);
+
+void ossl_ch_reset_rx_state(QUIC_CHANNEL *ch);
 #endif

// Source: https://github.com/openssl/openssl/commit/5b306efb0b3779dfdd0803b4afc9d08c91f11517

The patch introduces ossl_quic_cfq_discard_unreliable() to drop unreliable queued frames and ossl_ch_reset_rx_state() to reset receive-side state, enabling the stack to bound the number of PATH_CHALLENGE frames processed.

Detection Methods for CVE-2026-34183

Indicators of Compromise

  • Sustained inbound UDP/QUIC traffic from a single peer with abnormally high PATH_CHALLENGE frame counts.
  • Rapid resident set size (RSS) growth in OpenSSL-linked QUIC server or client processes without corresponding application workload.
  • Out-of-memory (OOM) terminations or abnormal process exits in QUIC-enabled services correlated with active QUIC sessions.

Detection Strategies

  • Inspect QUIC telemetry for asymmetric ratios of received PATH_CHALLENGE frames to transmitted PATH_RESPONSE acknowledgments per connection.
  • Track per-connection control frame queue depth in OpenSSL-based servers and alert on unbounded growth.
  • Correlate process memory metrics with QUIC connection identifiers to attribute leaks to specific peers.

Monitoring Recommendations

  • Enable host-level memory and process-exit monitoring on all servers exposing OpenSSL-based QUIC services.
  • Forward UDP/443 flow records and QUIC session metadata to a centralized analytics platform for baseline deviation analysis.
  • Add alerting on repeated abnormal termination of TLS/QUIC service processes within short time windows.

How to Mitigate CVE-2026-34183

Immediate Actions Required

  • Inventory all applications and appliances that link against OpenSSL and enable the QUIC stack.
  • Apply the OpenSSL security update referenced in the OpenSSL Security Advisory as soon as vendor builds are available.
  • Restrict exposure of QUIC endpoints to trusted networks where feasible until patching is complete.
  • Monitor process memory and restart policies for QUIC-enabled services to limit DoS impact.

Patch Information

OpenSSL has published fixes in the upstream repository. The relevant commits introduce bounded handling of unreliable control frames and a receive-state reset path. See the GitHub OpenSSL Commit 5b306ef, GitHub OpenSSL Commit 7d06955, GitHub OpenSSL Commit d2e9efb, and GitHub OpenSSL Commit fbaa838.

Workarounds

  • Disable the QUIC listener in affected applications and fall back to TLS over TCP where the application supports it.
  • Place QUIC services behind a reverse proxy or load balancer that enforces per-source connection and frame-rate limits.
  • Apply UDP rate limiting at network edge devices for ports hosting QUIC services to dampen flood traffic.
  • Configure cgroup or systemd memory limits on QUIC service processes so OOM events are contained and recoverable.
bash
# Example: constrain a QUIC service via systemd to limit DoS impact
# /etc/systemd/system/myquicd.service.d/override.conf
[Service]
MemoryMax=2G
MemoryHigh=1500M
Restart=on-failure
RestartSec=5s

# Example: edge UDP rate limit (Linux nftables)
nft add rule inet filter input udp dport 443 \
  meter quic_flood { ip saddr limit rate 500/second } accept

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.