CVE-2025-59530
📋 TL;DR
A denial-of-service vulnerability in quic-go allows malicious or misbehaving QUIC servers to crash client applications by sending premature HANDSHAKE_DONE frames during the handshake phase. This affects all quic-go clients using vulnerable versions, requiring no authentication to exploit. The crash occurs due to an assertion failure triggered by improper handling of early handshake completion.
💻 Affected Systems
- quic-go
⚠️ Manual Verification Required
This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.
Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).
🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.
- Review the CVE details at NVD
- Check vendor security advisories for your specific version
- Test if the vulnerability is exploitable in your environment
- Consider updating to the latest version as a precaution
⚠️ Risk & Real-World Impact
Worst Case
Complete denial of service for all quic-go client applications, causing service disruption and potential cascading failures in dependent systems.
Likely Case
Targeted DoS attacks against specific quic-go clients, causing application crashes and service interruptions.
If Mitigated
Minimal impact with proper patching; clients continue to function normally even when encountering misbehaving servers.
🎯 Exploit Status
Observed in the wild with certain server implementations. Exploitation requires a malicious server to send premature HANDSHAKE_DONE frame during handshake.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.49.0, 0.54.1, or 0.55.0
Vendor Advisory: https://github.com/quic-go/quic-go/security/advisories/GHSA-47m2-4cr7-mhcw
Restart Required: Yes
Instructions:
1. Update quic-go dependency to version 0.49.0, 0.54.1, or 0.55.0 or later. 2. Run 'go get github.com/quic-go/quic-go@v0.55.0' (or appropriate version). 3. Rebuild and redeploy affected applications. 4. Restart all services using quic-go.
🔧 Temporary Workarounds
Network filtering
allBlock or restrict QUIC connections to untrusted servers using firewall rules or network policies.
🧯 If You Can't Patch
- Implement network segmentation to limit quic-go clients to trusted servers only
- Deploy monitoring for application crashes and implement automatic restart mechanisms
🔍 How to Verify
Check if Vulnerable:
Check go.mod or go.sum for quic-go version. If version is below 0.49.0, or between 0.50.0-0.54.0, or exactly 0.55.0-beta versions, it's vulnerable.
Check Version:
grep 'quic-go' go.mod | grep -o 'v[0-9.]\+' OR check import statements in source code
Verify Fix Applied:
Verify quic-go version is 0.49.0, 0.54.1, 0.55.0 or later in go.mod/go.sum and rebuilt application.
📡 Detection & Monitoring
Log Indicators:
- Application crashes with assertion failures
- Panic logs mentioning quic-go or handshake errors
- Unexpected process termination during QUIC connections
Network Indicators:
- QUIC handshake failures to specific servers
- Increased connection resets during handshake phase
SIEM Query:
process:crash AND (module:quic-go OR process_name:*quic*) OR network.protocol:quic AND event.type:handshake_failure