Skip to main content

quic-go CVE-2026-40898

| EUVDEUVD-2026-34312 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-06-03 https://github.com/quic-go/quic-go GHSA-vvgj-x9jq-8cj9
7.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

Remote, unauthenticated, no interaction against default HTTP/3 config (AV:N/AC:L/PR:N/UI:N); pure memory-exhaustion DoS gives A:H with no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Red Hat
7.5 HIGH
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

6
Analysis Updated
Jul 22, 2026 - 20:33 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jul 22, 2026 - 20:22 vuln.today
cvss_changed
Severity Changed
Jul 22, 2026 - 20:22 NVD
MEDIUM HIGH
CVSS changed
Jul 22, 2026 - 20:22 NVD
5.3 (MEDIUM) 7.5 (HIGH)
Source Code Evidence Fetched
Jun 03, 2026 - 21:20 vuln.today
Analysis Generated
Jun 03, 2026 - 21:20 vuln.today

DescriptionNVD

Summary

An attacker can cause excessive memory allocation in quic-go's HTTP/3 client and server implementations by sending a QPACK-encoded HEADERS frame that decodes into a large trailer field section with many unique field names and/or large values. The implementation builds an http.Header for the corresponding http.Request or http.Response, while only enforcing limits on the size of the QPACK-compressed HEADERS frame, not on the decoded field section. This can lead to memory exhaustion.

This is very similar to CVE-2025-64702. The difference is that this issue uses HTTP trailers, rather than HTTP headers, as the attack vector.

Impact

A misbehaving or malicious peer can cause a denial-of-service (DoS) attack against quic-go's HTTP/3 servers or clients by triggering excessive memory allocation, potentially leading to crashes or resource exhaustion. This affects both servers and clients due to symmetric header construction.

Details

In HTTP/3, field sections are compressed using QPACK (RFC 9204). Field sections are used for both HTTP headers and trailers. quic-go's HTTP/3 server and client decode the QPACK-encoded HEADERS frame into header fields, then construct an http.Request or http.Response.

http3.Server.MaxHeaderBytes and http3.Transport.MaxResponseHeaderBytes limit the encoded HEADERS frame size, with defaults of 1 MB for servers and 10 MB for clients. However, they did not limit the decoded field section size. A maliciously crafted HEADERS frame carrying trailers can expand to about 50x the encoded size using QPACK static table entries with long names and/or values.

RFC 9114 requires endpoints to enforce decoded field section size limits via SETTINGS, which quic-go did not do for trailers.

The Fix

quic-go now enforces RFC 9114 decoded field section size limits for trailers as well. It incrementally decodes QPACK entries and checks the field section size after each entry, aborting the stream if an entry causes the limit to be exceeded.

AnalysisAI

Denial-of-service in quic-go's HTTP/3 client and server implementations (versions prior to 0.59.1) allows a remote peer to exhaust memory by sending a QPACK-encoded HEADERS frame carrying HTTP trailers that decode into a very large field section. Because quic-go capped only the compressed frame size (1 MB server / 10 MB client) and not the decoded trailer field section, a crafted frame can expand roughly 50x using QPACK static-table entries, forcing large http.Header allocations. Both peers are affected due to symmetric header construction; there is no public exploit identified at time of analysis and EPSS risk is low (0.04%), but the flaw is assessed automatable per CISA SSVC.

Technical ContextAI

The vulnerability lives in quic-go's HTTP/3 stack (Go package github.com/quic-go/quic-go), specifically the trailer-parsing path in http3/headers.go. HTTP/3 (RFC 9114) compresses field sections with QPACK (RFC 9204), and field sections carry both headers and trailers. When a HEADERS frame containing trailers is received, quic-go invokes the QPACK decoder and constructs an http.Header for the resulting http.Request or http.Response. This is a classic CWE-770 (Allocation of Resources Without Limits or Throttling) issue: RFC 9114 requires endpoints to advertise and enforce a maximum decoded field section size via SETTINGS, but quic-go enforced that bound only on regular headers, leaving the trailer path unbounded on the decoded size. QPACK's static table lets a small compressed input reference long canonical names/values, yielding an amplification factor of about 50x from encoded to decoded bytes.

RemediationAI

Vendor-released patch: upgrade quic-go to 0.59.1, which enforces the RFC 9114 decoded field section size limit for trailers by incrementally decoding QPACK entries and aborting the stream once the running size (name + value + 32 bytes per field) exceeds the configured limit. The release is available at https://github.com/quic-go/quic-go/releases/tag/v0.59.1 and the code change in PR https://github.com/quic-go/quic-go/pull/5642 (commit c56e8c79d1627cc1ed6005b421b4b0adadd83665); full details in advisory https://github.com/quic-go/quic-go/security/advisories/GHSA-vvgj-x9jq-8cj9. If immediate upgrade is not possible, reduce exposure by lowering http3.Server.MaxHeaderBytes / http3.Transport.MaxResponseHeaderBytes to shrink the accepted compressed frame size (this reduces but does not eliminate the ~50x amplification and may reject legitimate large-header requests), constraining process memory via container/cgroup limits so a single connection cannot exhaust host memory (trade-off: the affected connection/process may still be killed), and - for clients - restricting HTTP/3 connections to trusted servers. These are stopgaps; only 0.59.1 fully removes the unbounded trailer allocation.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected
SUSE Linux Enterprise Server for SAP applications 16.0 Affected
SUSE Manager Client Tools 15 Affected
SUSE Manager Client Tools for SLE 15 Affected

Share

CVE-2026-40898 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy