GitHub Advisoryadvisory · Go
GHSA-4374-p667-p6c8 HTTP/2 rapid reset can cause excessive work in net/http
HIGH
Official page ↗
- Aliases
- CVE-2023-39325
- Ecosystem
- Go
- Packages
- golang.org/x/net
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-400, CWE-770
- Reviewed
- 2023-10-11
Affected packages
• Go golang.org/x/net: < 0.17.0 → fixed in 0.17.0
Description
A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.
With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.
This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.
The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function.
Related
Alias · CVE (1)
- CVE-2023-39325 A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. vulnerability
References
- https://nvd.nist.gov/vuln/detail/CVE-2023-39325 advisory
- https://github.com/golang/go/issues/63417 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/NG7IMPL55MVWU3LCI4JQJT3K2U5CHDV7 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ODBY7RVMGZCBSTWF2OZGIZS57FNFUL67 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/OXGWPQOJ3JNDW2XIYKIVJ7N7QUIFNM2Q web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/PJCUNGIQDUMZ4Z6HWVYIMR66A35F5S74 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/QF5QSYAOPDOWLY6DUHID56Q4HQFYB45I web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/QXOU2JZUBEBP7GBKAYIJRPRBZSJCD7ST web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/R3UETKPUB3V5JS5TLZOF3SMTGT5K5APS web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/REMHVVIBDNKSRKNOTV7EQSB7CYQWOUOU web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/T7N5GV4CHH6WAGX3GFMDD3COEOVCZ4RI web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ULQQONMSCQSH5Z5OWFFQHCGEZ3NL4DRJ web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/UTT7DG3QOF5ZNJLUGHDNLRUIN6OWZARP web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/W2LZSWTV4NV4SNQARNXG5T6LRHP26EW2 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/WCNCBYKZXLDFGAJUB7ZP5VLC3YTHJNVH web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/XFOIBB4YFICHDM7IBOP7PWXW3FX4HLL2 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/XTNLSL44Y5FB6JWADSZH6DCV4JJAAEQY web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/YJWHBLVZDM5KQSDFRBFRKU5KSSOLIRQ4 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/YRKEXKANQ7BKJW2YTAMP625LJUJZLJ4P web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ZSVEMQV5ROY5YW5QE3I57HT3ITWG5GCV web
- https://pkg.go.dev/vuln/GO-2023-2102 web
- https://security.gentoo.org/glsa/202311-09 web
- https://security.netapp.com/advisory/ntap-20231110-0008 web
- https://go.dev/cl/534215 web
- https://go.dev/cl/534235 web
- https://go.dev/issue/63417 web
- https://groups.google.com/g/golang-announce/c/iNNxDTCjZvo/m/UDd7VKQuAAAJ web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/3OVW5V2DM5K5IC3H7O42YDUGNJ74J35O web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/3SZN67IL7HMGMNAVLOTIXLIHUDXZK4LH web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/3WJ4QVX2AMUJ2F2S27POOAHRC4K3CHU4 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/4BUK2ZIAGCULOOYDNH25JPU6JBES5NF2 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/5RSKA2II6QTD4YUKUNDVJQSRYSFC4VFR web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/AVZDNSMVDAQJ64LJC5I5U5LDM5753647 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/CHHITS4PUOZAKFIUBQAQZC7JWXMOYE4B web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/CLB4TW7KALB3EEQWNWCN7OUIWWVWWCG2 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/D2BBIDR2ZMB3X5BC7SR4SLQMHRMVPY6L web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/ECRC75BQJP6FJN2L7KCKYZW4DSBD7QSD web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/FTMJ3NJIDAZFWJQQSP3L22MUFJ3UP2PT web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/GSY7SXFFTPZFWDM6XELSDSHZLVW3AHK7 web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/HZQIELEIRSZUYTFFH5KTH2YJ4IIQG2KE web