Vulnerability · Published Apr 4, 2024 · Assigned by Go

CVE-2023-45288HTTP/2 CONTINUATION flood in net/http

High 7.5

In plain English

A high-severity security flaw in net/http from Go standard library. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 89.5% (higher than 99.8% of all known vulnerabilities). Ready-made attack tooling exists: public proof-of-concept code. Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)7.5High
Exploit odds (30 days)89.5%top 0.2% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack tooling1Public PoC

Official description

An attacker may cause an HTTP/2 endpoint to read arbitrary amounts of header data by sending an excessive number of CONTINUATION frames. Maintaining HPACK state requires parsing and processing all HEADERS and CONTINUATION frames on a connection. When a request's headers exceed MaxHeaderBytes, no memory is allocated to store the excess headers, but they are still parsed. This permits an attacker to cause an HTTP/2 endpoint to read arbitrary amounts of header data, all associated with a request which is going to be rejected. These headers can include Huffman-encoded data which is significantly more expensive for the receiver to decode than for an attacker to send. The fix sets a limit on the amount of excess header frames we will process before closing a connection.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
AlmaLinux:8delve1.21.2-3.module_el8.10.0+3760+4dd778f9ALSA-2024:3259
AlmaLinux:8delve1.20.2-1.module_el8.9.0+3642+43318da8ALSA-2024:1962
AlmaLinux:8git-lfs3.4.1-2.el8_10ALSA-2024:3346
AlmaLinux:8git-lfs3.2.0-3.el8_9ALSA-2024:2699
AlmaLinux:9git-lfs3.4.1-2.el9_4ALSA-2024:2724
AlmaLinux:9git-lfs3.2.0-2.el9_3ALSA-2024:2079
AlmaLinux:8go-toolset1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:8go-toolset1.20.12-1.module_el8.9.0+3728+f1d47c6fALSA-2024:1962
AlmaLinux:9go-toolset1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:9go-toolset1.21.9-2.el9_4ALSA-2024:2562
AlmaLinux:8golang1.20.12-8.module_el8.9.0+3818+ac9bcae6ALSA-2024:1962
AlmaLinux:8golang1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:9golang1.21.9-2.el9_4ALSA-2024:2562
AlmaLinux:9golang1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:8golang-bin1.20.12-8.module_el8.9.0+3818+ac9bcae6ALSA-2024:1962
AlmaLinux:8golang-bin1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:9golang-bin1.21.9-2.el9_4ALSA-2024:2562
AlmaLinux:9golang-bin1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:8golang-docs1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:8golang-docs1.20.12-8.module_el8.9.0+3818+ac9bcae6ALSA-2024:1962
AlmaLinux:9golang-docs1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:9golang-docs1.21.9-2.el9_4ALSA-2024:2562
AlmaLinux:8golang-misc1.20.12-8.module_el8.9.0+3818+ac9bcae6ALSA-2024:1962
AlmaLinux:8golang-misc1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:9golang-misc1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:9golang-misc1.21.9-2.el9_4ALSA-2024:2562
AlmaLinux:8golang-src1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:8golang-src1.20.12-8.module_el8.9.0+3818+ac9bcae6ALSA-2024:1962
AlmaLinux:9golang-src1.21.9-2.el9_4ALSA-2024:2562
AlmaLinux:9golang-src1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:8golang-tests1.20.12-8.module_el8.9.0+3818+ac9bcae6ALSA-2024:1962
AlmaLinux:8golang-tests1.21.9-1.module_el8.10.0+3840+edaca3c3ALSA-2024:3259
AlmaLinux:9golang-tests1.20.12-4.el9_3ALSA-2024:1963
AlmaLinux:9golang-tests1.21.9-2.el9_4ALSA-2024:2562
Alpine:v3.21forgejo1.21.10.0-r0ALPINE-CVE-2023-45288
Alpine:v3.22forgejo1.21.10.0-r0ALPINE-CVE-2023-45288
Alpine:v3.23forgejo1.21.10.0-r0ALPINE-CVE-2023-45288
Alpine:v3.24forgejo1.21.10.0-r0ALPINE-CVE-2023-45288
Alpine:v3.20go1.22.2-r0ALPINE-CVE-2023-45288
Alpine:v3.21go1.22.2-r0ALPINE-CVE-2023-45288
Alpine:v3.22go1.22.2-r0ALPINE-CVE-2023-45288
Alpine:v3.23go1.22.2-r0ALPINE-CVE-2023-45288
Alpine:v3.24go1.22.2-r0ALPINE-CVE-2023-45288
Alpine:v3.21rclone1.67.0-r0ALPINE-CVE-2023-45288
Alpine:v3.22rclone1.67.0-r0ALPINE-CVE-2023-45288
Alpine:v3.23rclone1.67.0-r0ALPINE-CVE-2023-45288
Alpine:v3.24rclone1.67.0-r0ALPINE-CVE-2023-45288
Debian:12golang-1.19no fix listedDEBIAN-CVE-2023-45288
Debian:12golang-golang-x-netno fix listedDEBIAN-CVE-2023-45288
Debian:13golang-golang-x-net1:0.23.0+dfsg-DEBIAN-CVE-2023-45288
Debian:14golang-golang-x-net1:0.23.0+dfsg-DEBIAN-CVE-2023-45288
Gogolang.org/x/net0.23.0GHSA-4v7x-pqxf-cx7m
Gogolang.org/x/net0.23.0GO-2024-2687
Gogolang.org/x/net/http20.23.0GHSA-4v7x-pqxf-cx7m
Gonet/http1.22.2GHSA-4v7x-pqxf-cx7m
Gonet/http1.21.9GHSA-4v7x-pqxf-cx7m
Gostdlib1.21.9, 1.22.2GO-2024-2687
Rocky Linux:8delve0:1.20.2-1.module+el8.9.0+1392+c9f6376aRLSA-2024:1962
Rocky Linux:8git-lfs0:3.4.1-2.el8_10RLSA-2024:3346
Rocky Linux:8git-lfs0:3.2.0-3.el8_9RLSA-2024:2699
Rocky Linux:9git-lfs0:3.4.1-2.el9_4RLSA-2024:2724
Rocky Linux:8go-toolset0:1.20.12-1.module+el8.9.0+1725+0ed4fa7fRLSA-2024:1962
Rocky Linux:8golang0:1.20.12-8.module+el8.9.0+1787+5672f315RLSA-2024:1962
Ubuntu:22.04:LTSgolang-1.171.17.13-3ubuntu1.3USN-7111-1
Ubuntu:22.04:LTSgolang-1.171.17.13-3ubuntu1.3UBUNTU-CVE-2023-45288
Ubuntu:22.04:LTSgolang-1.181.18.1-1ubuntu1.2USN-7109-1
Ubuntu:22.04:LTSgolang-1.181.18.1-1ubuntu1.2UBUNTU-CVE-2023-45288
Ubuntu:22.04:LTSgolang-1.20no fix listedUBUNTU-CVE-2023-45288
Ubuntu:22.04:LTSgolang-1.211.21.1-1~ubuntu22.04.3USN-6886-1
Ubuntu:22.04:LTSgolang-1.211.21.1-1~ubuntu22.04.3UBUNTU-CVE-2023-45288
Ubuntu:24.04:LTSgolang-1.211.21.9-1ubuntu0.1USN-6886-1
Ubuntu:22.04:LTSgolang-1.221.22.2-2~22.04.1USN-6886-1
Ubuntu:24.04:LTSgolang-1.221.22.2-2ubuntu0.1USN-6886-1

Affected products (as reported)

VendorProductVersions
Go standard library net/http 0 – before 1.21.91.22.0-0 – before 1.22.2
golang.org/x/net golang.org/x/net/http2 0 – before 0.23.0

References