CVE-2022-30591

7.5 HIGH

📋 TL;DR

CVE-2022-30591 is a denial-of-service vulnerability in quic-go where attackers can cause high CPU consumption by sending incomplete QUIC or HTTP/3 requests (Slowloris variant). This affects systems using quic-go versions through 0.27.0 for QUIC/HTTP/3 implementations.

💻 Affected Systems

Products:
  • quic-go
Versions: All versions through 0.27.0
Operating Systems: All platforms running quic-go
Default Config Vulnerable: ⚠️ Yes
Notes: Vendor disputes this should be listed as a vulnerability, but the CVE exists and affects default configurations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service unavailability due to CPU exhaustion, affecting all QUIC/HTTP/3 connections through the vulnerable component.

🟠

Likely Case

Degraded performance and intermittent service disruptions under targeted attack conditions.

🟢

If Mitigated

Minimal impact with proper rate limiting, connection timeouts, and updated versions.

🌐 Internet-Facing: HIGH - Attackers can exploit remotely without authentication via network requests.
🏢 Internal Only: MEDIUM - Requires internal network access but still exploitable by malicious insiders or compromised internal systems.

🎯 Exploit Status

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

Exploitation requires sending malformed QUIC/HTTP/3 packets but doesn't require special tools beyond network access.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.27.1 and later

Vendor Advisory: https://github.com/lucas-clemente/quic-go/releases

Restart Required: Yes

Instructions:

1. Update quic-go to version 0.27.1 or later using 'go get github.com/lucas-clemente/quic-go@latest'. 2. Rebuild and redeploy applications using quic-go. 3. Restart services using the updated library.

🔧 Temporary Workarounds

Rate limiting and connection timeouts

all

Implement connection rate limiting and aggressive timeouts for incomplete connections

Configure application-level connection limits and timeouts in your quic-go implementation

Network-level protections

linux

Use firewalls or WAFs to limit QUIC/HTTP/3 connections from single sources

iptables -A INPUT -p udp --dport 443 -m connlimit --connlimit-above 10 -j DROP (example for Linux)

🧯 If You Can't Patch

  • Implement network segmentation to isolate QUIC/HTTP/3 services from untrusted networks
  • Deploy DDoS protection services that can detect and mitigate Slowloris-style attacks

🔍 How to Verify

Check if Vulnerable:

Check go.mod or vendor dependencies for quic-go version <=0.27.0

Check Version:

grep 'quic-go' go.mod | grep -o 'v[0-9.]\+'

Verify Fix Applied:

Verify quic-go version is >=0.27.1 in dependencies and monitor CPU usage during QUIC/HTTP/3 traffic

📡 Detection & Monitoring

Log Indicators:

  • High CPU usage spikes correlated with QUIC/HTTP/3 connections
  • Abnormally high number of incomplete connection attempts

Network Indicators:

  • Unusual patterns of incomplete QUIC handshakes
  • Multiple connections from single sources with incomplete requests

SIEM Query:

source="application_logs" ("quic-go" OR "HTTP/3") AND ("high cpu" OR "slow connection" OR "incomplete handshake")

🔗 References

📤 Share & Export