Ferritaas Incident Intelligence
Protocol Defect Intelligence CVE-2024-26011 Bug 0891902 Severity: High (P2)

QUIC / HTTP/3 Protocol Stack UDP 443 Handshake Flooding Remote DoS

An improper input handling defect [CWE-228] in the FortiOS WAD proxy daemon allows remote unauthenticated actors to trigger worker process crashes and CPU core saturation via malformed QUIC / HTTP/3 Initial packet tokens on UDP port 443.

🚀 Open Full Runbook & Live Automation on Ferrite → Browse Known Issues Directory
⏱️ Est. Triage: 5–7 mins | Zero-Downtime Fallback CLI

Technical Root Cause Analysis

When deep SSL inspection or proxy-mode web filtering is enabled, FortiOS delegates incoming UDP port 443 traffic to the Wide Area Dispatcher (/bin/wad) daemon. The daemon implements a user-space QUIC transport protocol parser to unpack HTTP/3 streams, examine TLS 1.3 ClientHello extensions, and enforce security profiles.

When handling the QUIC Initial packet framing, the subroutine quic_parse_initial_packet parses variable-length connection IDs (DCID/SCID) and token fields. If a packet presents an invalid token length field exceeding the remaining UDP payload or containing zero-length CRYPTO frame offsets, an integer underflow occurs in the length validation logic.

This triggers an out-of-bounds read into unmapped memory addresses, generating a Linux SIGSEGV (signal 11) that immediately crashes the WAD worker. A continuous flood of crafted QUIC packets sends all assigned WAD worker threads into infinite restart loops, spiking CPU utilization across all inspection cores to 100% and terminating active TCP/SSL proxy sessions.

[wad 18402] crash: signal 11 (SIGSEGV) at 0x00007f8b9e0231b4 backtrace: #0 0x00007f8b9f10429a in quic_parse_initial_packet+0x14a () from /bin/wad #1 0x00007f8b9f105820 in wad_quic_packet_process+0x312 () from /bin/wad #2 0x00007f8b9f0e1189 in wad_udp_stream_event_cb+0x8f () from /bin/wad #3 0x00007f8b9efd2041 in event_base_loop+0x311 () from /lib64/libevent.so daemon /bin/wad child 18402 exited with signal 11 (restarting worker 2/4)

Affected Firmware & Blast Radius Matrix

FortiOS Branch Vulnerable Builds Confirmed Clean Build Status & Workaround
FortiOS 7.2 7.2.2 – 7.2.6 7.2.7+ Block UDP 443; disable QUIC profile
FortiOS 7.4 7.4.0 – 7.4.1 7.4.2+ Block UDP 443 or upgrade firmware
FortiOS 7.0 Not Affected 7.0.x Clean QUIC proxy parsing not implemented in 7.0
FortiOS 7.6 Not Affected 7.6.0+ Clean Hardened bounds validation in place

Platform Impact: Affects desktop and mid-range FortiGate appliances (FG-60F through FG-200F) running proxy-based inspection or deep SSL inspection with HTTP/3 / QUIC enabled.

Step 01: Free Verification CLI (Safe Read-Only)

Execute these diagnostic commands via SSH or console to evaluate UDP port 443 session load, verify WAD worker process states, and check per-core CPU utilization:

Diagnostic Commands

# 1. Inspect firewall session statistics for UDP 443 QUIC connection counts
diagnose firewall session full-stat | grep 443

# 2. Query WAD worker processes and memory distribution
diagnose test application wad 1000

# 3. Monitor real-time multi-core CPU usage to detect worker thread saturation
diagnose sys mpstat 1

Remediation & Workaround Steps (Teaser Preview)

Follow the complete step-by-step remediation guide in the Ferrite interactive platform:

Step 02: Identify Active Proxy Profiles with QUIC Enabled

Locate firewall policies and profile-protocol-options objects configured to inspect QUIC/HTTP/3 traffic.

🔒 Interactive CLI Available in Ferrite Runbook #05

Step 03: Non-Disruptive UDP 443 Drop Policy Injection

Deploy a top-order firewall rule dropping outbound UDP 443, forcing browsers to seamlessly fall back to TCP TLS 1.3.

🔒 Interactive CLI Available in Ferrite Runbook #05

Step 04: Surgical WAD Worker Recycle without ASIC Impact

Safely restart crashed WAD worker threads without interrupting hardware-accelerated NP6/NP7 transit traffic.

🔒 Interactive CLI Available in Ferrite Runbook #05
⚡ Ferrite Platform Superpowers

Execute the Complete Runbook with Live Browser Automation

Connect your FortiGate via browser console (Web Serial) or local SSH bridge, verify each command in real-time, generate ready-to-run Tera Term scripts, and export sanitized TAC dossiers.

Live Browser Automation Direct terminal connection with live step checkoff.
📟
1-Click Tera Term (.ttl) Generate scripts for air-gapped jumpboxes.
🛡️
Zero-Trust Scrubber Scrub serials and credentials in local browser RAM.
📄
TAC P1 Escalation Dossier Standardized evidence export with SHA-256 seal.

Frequently Asked Questions

What causes WAD daemon crashes on QUIC / HTTP/3 traffic?

Under proxy mode, crafted QUIC Initial packets with corrupted token length fields trigger an integer underflow in quic_parse_initial_packet, causing memory segmentation faults in WAD worker threads.

Does blocking UDP port 443 break web browsing?

No. Browsers automatically and transparently fall back to standard TCP TLS 1.3 / HTTP/2 within milliseconds when UDP 443 is rejected, preserving user connectivity without interruption.

Which firmware versions fix CVE-2024-26011?

The fix is present in FortiOS 7.2.7+, 7.4.2+, and all releases of FortiOS 7.6.x.