Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreUsing 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. When such unsafe instrumentation is used, the application becomes vulnerable to injection and spoofing attacks because micrometer-registry-statsd and micrometer-core do not sanitize newline characters (\n, \r) by default prior to this fix.
micrometer-registry-statsd (when using the Datadog or Etsy flavor), because the StatsD protocol is newline-delimited, this allows for line-protocol injection (cross-metric spoofing).LoggingMeterRegistry in micrometer-core, because metric output is printed line-by-line to log files, this allows for both metric spoofing (if downstream log-metrics scrapers or parsers ingest the log lines as separate metrics) and general log spoofing.Specifically, an application is vulnerable when all the following are true:
io.micrometer:micrometer-registry-statsd or io.micrometer:micrometer-core.Datadog or Etsy flavor of the StatsD registry, or uses LoggingMeterRegistry.When vulnerable, an attacker can break out of the current metric or log line by injecting line terminators. This allows them to spoof arbitrary metrics (e.g., system load, standard JVM metrics, or other business metrics) across the metrics registry namespace (either directly via StatsD protocol or via downstream log-metric scrapers/parsers), as well as inject arbitrary log entries to spoof general log records.
Micrometer:
| Fix version | Availability |
|---|---|
| 1.17.0.1 | Enterprise Support Only |
| 1.17.1 | OSS |
| 1.16.6.1 | Enterprise Support Only |
| 1.16.7 | OSS |
| 1.15.13 | Enterprise Support Only |
| 1.14.17 | Enterprise Support Only |
| 1.9.19 | Enterprise Support Only |
No further mitigation steps are necessary.
The issue was identified and responsibly reported by:
To report a security vulnerability for a project within the Spring portfolio, see the Security Policy