Перейти к содержимому
Noroxi
CVE-2023-45288· NVD / CVE Program· CNA Go

HTTP/2 CONTINUATION flood in net/http

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.

ВысокаяCVSS 7.5 · v3.1—Proof of concept Есть исправление
Опубликовано
4 апр. 2024 г.
Обновлено
17 июн. 2026 г.
EPSS
92,0 % · 100-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

Инструменты для отчёта

JSON

Оценка срочности

58

В плане

Включите в обычный цикл установки исправлений.

CVSS
30 / 40 · 7.5 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
28 / 30 · 92,0 %

Решение CISA SSVC

Эксплуатация
нет
Автоматизируемо
да
Техническое влияние
частичное

Vulnrichment: входные данные дерева решений CISA.

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.

Мы используем этот продукт, нужна помощь

Затронутые системы

ВендорПродукт
go standard librarynet/http
golanghttp2

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (Go). Не зависят от анализа CPE в NVD и обычно опережают его.

  • Go standard library net/http

    • до 1.21.9затронута · semver
    • 1.22.0-0 и новее · до 1.22.2затронута · semver
  • golang.org/x/net golang.org/x/net/http2

    • до 0.23.0затронута · semver

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
AlmaLinux:8delveдо 1.20.2-1.module_el8.9.0+3642+43318da81.20.2-1.module_el8.9.0+3642+43318da8
AlmaLinux:8delveдо 1.21.2-3.module_el8.10.0+3760+4dd778f91.21.2-3.module_el8.10.0+3760+4dd778f9
AlmaLinux:8git-lfsдо 3.2.0-3.el8_93.2.0-3.el8_9
AlmaLinux:8git-lfsдо 3.4.1-2.el8_103.4.1-2.el8_10
AlmaLinux:8go-toolsetдо 1.20.12-1.module_el8.9.0+3728+f1d47c6f1.20.12-1.module_el8.9.0+3728+f1d47c6f
AlmaLinux:8go-toolsetдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:8golangдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:8golangдо 1.20.12-8.module_el8.9.0+3818+ac9bcae61.20.12-8.module_el8.9.0+3818+ac9bcae6
AlmaLinux:8golang-binдо 1.20.12-8.module_el8.9.0+3818+ac9bcae61.20.12-8.module_el8.9.0+3818+ac9bcae6
AlmaLinux:8golang-binдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:8golang-docsдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:8golang-docsдо 1.20.12-8.module_el8.9.0+3818+ac9bcae61.20.12-8.module_el8.9.0+3818+ac9bcae6
AlmaLinux:8golang-miscдо 1.20.12-8.module_el8.9.0+3818+ac9bcae61.20.12-8.module_el8.9.0+3818+ac9bcae6
AlmaLinux:8golang-miscдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:8golang-srcдо 1.20.12-8.module_el8.9.0+3818+ac9bcae61.20.12-8.module_el8.9.0+3818+ac9bcae6
AlmaLinux:8golang-srcдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:8golang-testsдо 1.20.12-8.module_el8.9.0+3818+ac9bcae61.20.12-8.module_el8.9.0+3818+ac9bcae6
AlmaLinux:8golang-testsдо 1.21.9-1.module_el8.10.0+3840+edaca3c31.21.9-1.module_el8.10.0+3840+edaca3c3
AlmaLinux:9git-lfsдо 3.4.1-2.el9_43.4.1-2.el9_4
AlmaLinux:9git-lfsдо 3.2.0-2.el9_33.2.0-2.el9_3
AlmaLinux:9go-toolsetдо 1.20.12-4.el9_31.20.12-4.el9_3
AlmaLinux:9go-toolsetдо 1.21.9-2.el9_41.21.9-2.el9_4
AlmaLinux:9golangдо 1.20.12-4.el9_31.20.12-4.el9_3
AlmaLinux:9golangдо 1.21.9-2.el9_41.21.9-2.el9_4

+96

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2026-56853Apply ReadHeaderTimeout when doing unencrypted HTTP/2 check in net/http
    30Наблюдать
  • CVE-2024-24791Denial of service due to improper 100-continue handling in net/http
    30Наблюдать
  • CVE-2025-4673Sensitive headers not cleared on cross-origin redirect in net/http
    27Наблюдать
  • CVE-2024-45336Sensitive headers incorrectly sent after cross-domain redirect in net/http
    24Наблюдать
  • CVE-2025-58186Lack of limit when parsing cookies can cause memory exhaustion in net/http
    21Наблюдать
  • CVE-2025-47910CrossOriginProtection insecure bypass patterns not limited to exact matches in net/http
    21Наблюдать

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Go standard library net/http1.21.9Вендор (CNA)
Go standard library net/http1.22.2Вендор (CNA)
golang.org/x/net golang.org/x/net/http20.23.0Вендор (CNA)
almalinux:delve1.20.2-1.module_el8.9.0+3642+43318da8 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:git-lfs3.2.0-2.el9_3 · AlmaLinux:9Реестр пакетов (OSV)
almalinux:go-toolset1.20.12-1.module_el8.9.0+3728+f1d47c6f · AlmaLinux:8Реестр пакетов (OSV)
almalinux:golang1.20.12-8.module_el8.9.0+3818+ac9bcae6 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:golang-bin1.20.12-8.module_el8.9.0+3818+ac9bcae6 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:golang-docs1.20.12-8.module_el8.9.0+3818+ac9bcae6 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:golang-misc1.20.12-8.module_el8.9.0+3818+ac9bcae6 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:golang-src1.20.12-8.module_el8.9.0+3818+ac9bcae6 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:golang-tests1.20.12-8.module_el8.9.0+3818+ac9bcae6 · AlmaLinux:8Реестр пакетов (OSV)
debian:golang-golang-x-net1:0.23.0+dfsg- · Debian:13Реестр пакетов (OSV)
Go:golang.org/x/net0.23.0Реестр пакетов (OSV)
Go:golang.org/x/net/http20.23.0Реестр пакетов (OSV)
Go:net/http1.21.9Реестр пакетов (OSV)
Go:net/http1.22.2Реестр пакетов (OSV)
Go:stdlib1.21.9Реестр пакетов (OSV)
Go:stdlib1.22.2Реестр пакетов (OSV)
opensuse:containerd1.7.17-150000.111.3 · openSUSE:Leap Micro 5.3Реестр пакетов (OSV)
opensuse:go1.211.21.9-150000.1.30.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
opensuse:go1.21-openssl1.21.13.1-150000.1.11.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
opensuse:go1.221.22.2-150000.1.12.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
opensuse:kubernetes1.271.27.16-150400.9.10.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
opensuse:kubernetes1.281.28.13-150400.9.8.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
red hat:buildah1:1.29.1-10.4.rhaos4.14.el8 · Red Hat:openshift:4.14::el8Реестр пакетов (OSV)
red hat:buildah-debuginfo1:1.29.1-10.4.rhaos4.14.el8 · Red Hat:openshift:4.14::el8Реестр пакетов (OSV)
red hat:buildah-debugsource1:1.29.1-10.4.rhaos4.14.el8 · Red Hat:openshift:4.14::el8Реестр пакетов (OSV)
red hat:buildah-tests1:1.29.1-10.4.rhaos4.14.el8 · Red Hat:openshift:4.14::el8Реестр пакетов (OSV)
red hat:buildah-tests-debuginfo1:1.29.1-10.4.rhaos4.14.el8 · Red Hat:openshift:4.14::el8Реестр пакетов (OSV)

+23

Статус эксплойта

Есть proof of concept

Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.

Доказательство

  • Репозиторий PoC на GitHub ×1

Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.

Публичные свидетельства эксплойта
ИсточникТипДата
Репозиторий PoC на GitHubstars:52024-04-12

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

  1. Публикация
  2. Первый PoC+7 дн.
  3. Сегодня30 сент. 2026 г.+909 дн.
EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана любым, у кого есть доступ через интернет.
  • Учётная запись или пароль не требуются.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
нет
Целостность
нет
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Сеть
Сложность атаки
Низкая
Требуемые привилегии
Не требуются
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Нет
Влияние на целостность
Нет
Влияние на доступность
Высокое

Класс уязвимости (CWE)

CWE-400 · Uncontrolled Resource Consumption

Вектор CVSS

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

nvd-secondary

Первопричина

Код, разбирающий вложенные структуры, не ограничивает глубину или размер. Небольшие входные данные могут привести к несоразмерной вычислительной нагрузке.

Ошибка в коде

Весь класс CWE-400

Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.

Уязвимый код

ts
function expand(node) {  return node.children.map(expand);}

Исправленный код

ts
const MAX_DEPTH = 32;function expand(node, depth = 0) {  if (depth > MAX_DEPTH) throw new Error("слишком глубоко");  return node.children.map((c) => expand(c, depth + 1));}

Контекст атаки

Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Все записи