HTTP/2 server memory exhaustion due to Trailer headers in net/http
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Go standard library | net/http | unaffected |
|
||||||
| Go standard library | net/http/internal/http2 | unaffected |
|
||||||
| golang.org/x/net | golang.org/x/net/http2 | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Go Standard Library | Net/http |
|
||||||||
| Go Standard Library | Net/http |
|
||||||||
| Go Standard Library | Net/http2 |
|
| Source | ID | Title |
|---|---|---|
Ubuntu USN |
USN-8935-1 | Go vulnerabilities |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.866% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-399 CWE-770 |
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-405 | |
| Metrics |
cvssV3_1
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Go Standard Library
Go Standard Library net/http Go Standard Library net/http2 |
|
| Vendors & Products |
Go Standard Library
Go Standard Library net/http Go Standard Library net/http2 |
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-399 CWE-770 |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | When "Trailer" headers are sent by a client, the HTTP server internally uses the header values to populate the Request.Trailer map passed to the server handler. Because Request.Trailer is a map, each entry incurs memory overhead. For HTTP/2 servers, a malicious client can exploit this by sending a "Trailer" header that declares a large number of fields, causing the server to allocate a disproportionate amount of memory while bypassing Server.MaxHeaderValueCount and Server.MaxHeaderBytes limits. This exploit is not applicable for HTTP/1 servers, which do not support multiplexing a large number of requests over one TCP connection, and whose Server.MaxHeaderBytes are calculated differently. | |
| Title | HTTP/2 server memory exhaustion due to Trailer headers in net/http | |
| References |
|