Использование ненадежных, ненормализованных входных данных «как есть» для данных метрик (таких как имена метрик, ключи тегов или значения тегов) — это опасный антишаблон, который никогда не должен выполнять инструментарий общего назначения. При использовании такого небезопасного инструментария приложение становится уязвимым для атак внедрения и спуфинга, поскольку micrometer-registry-statsd и micrometer-core не очищают символы новой строки (\n, \r) по умолчанию до этого исправления.
* Для реестра StatsD в micrometer-registry-statsd (при использовании версии Datadog или Etsy), поскольку протокол StatsD разделяется новой строкой, это позволяет осуществлять внедрение строкового протокола (перекрестный спуфинг).
* Для LoggingMeterRegistry в микрометр-ядре, поскольку выходные данные метрики построчно распечатываются в файлы журнала, это позволяет как подменять метрику (если последующие очистители или анализаторы метрик журнала принимают строки журнала как отдельные метрики), так и общую подделку журнала. В частности, приложение уязвимо, если выполняются все следующие условия:
* Приложение использует уязвимую версию io.micrometer:micrometer-registry-statsd или io.micrometer:micrometer-core.
* Приложение использует вариант Datadog или Etsy реестра StatsD или использует LoggingMeterRegistry.
* Приложение измеряет счетчики, используя управляемый пользователем непроверенный ввод имен метрик, ключей тегов или значений тегов.
При уязвимости злоумышленник может выйти за пределы текущей метрики или строки журнала, введя ограничители строки. Это позволяет им подделывать произвольные метрики (например, загрузку системы, стандартные метрики JVM или другие бизнес-метрики) в пространстве имен реестра метрик (либо напрямую через протокол StatsD, либо через последующие программы очистки/анализа метрик журнала), а также вводить произвольные записи журнала для подделки общих записей журнала.
Показать оригинальное описание (EN)
Using untrusted, non-normalized input as-is for metrics data (such as metric names, tag keys, or tag values) is a dangerous antipattern that general-purpose instrumentation should never perform. Micrometer 1.17.0 Micrometer 1.16.0 - 1.16.6 Micrometer 1.15.0 - 1.15.12 Micrometer 1.14.0 - 1.14.16 Micrometer 1.9.18 and earlier
Характеристики атаки
Последствия
Строка CVSS v3.1