CVE-2026-21435

5.3 MEDIUM

📋 TL;DR

This vulnerability allows an attacker to cause denial of service in webtransport-go implementations by preventing WebTransport session closure. Attackers can withhold QUIC flow control credit, blocking transmission of the WT_CLOSE_SESSION capsule and causing the close operation to hang indefinitely. This affects any system using webtransport-go versions prior to v0.10.0.

💻 Affected Systems

Products:
  • webtransport-go
Versions: All versions prior to v0.10.0
Operating Systems: All platforms running webtransport-go
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using webtransport-go for WebTransport protocol implementation is affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service for WebTransport sessions, potentially exhausting server resources and making services unavailable to legitimate users.

🟠

Likely Case

Targeted denial of service against specific WebTransport sessions, causing service disruption for affected users.

🟢

If Mitigated

Limited impact with proper monitoring and resource limits, though sessions may still hang until timeout.

🌐 Internet-Facing: HIGH - WebTransport services exposed to the internet are directly vulnerable to unauthenticated attacks.
🏢 Internal Only: MEDIUM - Internal services could be targeted by malicious insiders or compromised internal systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The attack requires establishing a WebTransport connection but no authentication. Exploitation is straightforward for attackers with network access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.10.0

Vendor Advisory: https://github.com/quic-go/webtransport-go/security/advisories/GHSA-px4r-g4p3-hhqv

Restart Required: Yes

Instructions:

1. Update webtransport-go dependency to v0.10.0 or later. 2. Update go.mod to require github.com/quic-go/webtransport-go v0.10.0. 3. Rebuild and redeploy the application. 4. Restart all services using webtransport-go.

🔧 Temporary Workarounds

Implement session timeouts

all

Configure aggressive session timeouts to limit how long hung sessions can consume resources.

// In application code, implement session timeout logic
// Example: Set maximum session duration to 30 seconds

Rate limiting connections

all

Implement connection rate limiting to prevent mass exploitation.

// Use rate limiting middleware or configure at load balancer
// Example: Limit to 100 connections per IP per minute

🧯 If You Can't Patch

  • Implement network segmentation to isolate WebTransport services from untrusted networks.
  • Deploy Web Application Firewall (WAF) or reverse proxy with connection limiting and anomaly detection.

🔍 How to Verify

Check if Vulnerable:

Check go.mod or go.sum for webtransport-go dependency version. If version is <0.10.0, the system is vulnerable.

Check Version:

grep webtransport-go go.mod || grep webtransport-go go.sum

Verify Fix Applied:

Verify webtransport-go version is >=0.10.0 in go.mod/go.sum and test WebTransport session closure under simulated attack conditions.

📡 Detection & Monitoring

Log Indicators:

  • Unusually long WebTransport session durations
  • Multiple session timeout events
  • High number of concurrent WebTransport sessions

Network Indicators:

  • Excessive QUIC connections to WebTransport ports
  • Unusual patterns in QUIC flow control usage

SIEM Query:

source="webtransport-logs" AND (session_duration > 300 OR event="timeout") | stats count by src_ip

🔗 References

📤 Share & Export