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

DoS vulnerability for high cardinality metrics in opentelemetry-go-contrib

opentelemetry-go-contrib is a collection of extensions for OpenTelemetry-Go. The v0.38.0 release of `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` uses the `httpconv.ServerRequest` function to annotate metric measurements for the `http.server.request_content_length`, `http.server.response_content_length`, and `http.server.duration` instruments. The `ServerRequest` function sets the `http.target` attribute value to be the whole request URI (including the query string)[^1]. The metric instruments do not "forget" previous measurement attributes when `cumulative` temporality is used, this means the cardinality of the measurements allocated is directly correlated with the unique URIs handled. If the query string is constantly random, this will result in a constant increase in memory allocation that can be used in a denial-of-service attack. This issue has been addressed in version 0.39.0. Users are advised to upgrade. There are no known workarounds for this issue.

ВысокаяCVSS 7.5 · v3.1—Эксплойта нет Есть исправление
Опубликовано
8 февр. 2023 г.
Обновлено
17 июн. 2026 г.
EPSS
1,0 % · 61-й процентиль
Следить за этой CVE

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

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

JSON

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

30

Наблюдать

Пока низкий приоритет.

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

Решение CISA SSVC

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

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

Оценка CNA и NVD

NVD
7,5
CNA · GitHub_M
7,5
совпадают

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

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

ВендорПродукт
linuxfoundationopentelemetry-go contrib

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

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • linuxfoundation opentelemetry-go contrib0.38.0

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

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

  • open-telemetry opentelemetry-go-contrib

    • >= 0.38.0, < 0.39.0затронута

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

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

ЭкосистемаПакетЗатронутый диапазонИсправление
Gogithub.com/prometheus/client_golangдо 1.11.11.11.1
Gogo.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeegoс 0.38.0 · до 0.39.00.39.0
Gogo.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestfulдо 0.44.00.44.0
Gogo.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelginдо 0.44.00.44.0
Gogo.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmuxдо 0.44.00.44.0
Gogo.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelechoдо 0.44.00.44.0
Gogo.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaronдо 0.44.00.44.0
Gogo.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptraceдо 0.44.00.44.0
Gogo.opentelemetry.io/contrib/instrumentation/net/http/otelhttpс 0.38.0 · до 0.39.00.39.0
Gogo.opentelemetry.io/contrib/instrumentation/net/http/otelhttpдо 0.44.00.44.0

Исправление

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

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

Продукт / пакетИсправленная версияИсточник
open-telemetry opentelemetry-go-contrib0.39.0 · descriptionВендор (CNA)
Go:github.com/prometheus/client_golang1.11.1Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/github.com/astaxie/beego/otelbeego0.39.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful0.44.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin0.44.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux0.44.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho0.44.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron0.44.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace0.44.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp0.39.0Реестр пакетов (OSV)
Go:go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp0.44.0Реестр пакетов (OSV)

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

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

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

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

Хронология

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

Кроме публикации датированных событий нет.

EPSS за 120 дней

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

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

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

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

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

В записи 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-primary

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

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

Ошибка в коде

Весь класс 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.

Анализ Noroxi

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

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

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

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

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

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

Источники

Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.

Все записи