Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreIt is possible for outbound HTTP requests using a Micrometer-instrumented client to cause a denial-of-service (DoS) condition due to an unbounded memory leak.
Specifically, an application is vulnerable when all the following are true:
io.micrometer:micrometer-core.HttpAsyncClient (4.x or 5.x) with MicrometerHttpClientInterceptor.When an outbound asynchronous HTTP request fails before any response message is received (such as a connection reset, connection timeout, or socket failure), the tracking state is never removed from the interceptor. Under sustained connection failures, this leads to unbounded JVM heap memory leak and eventual application crash via OutOfMemoryError.
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 |
If you are using Apache HTTP Client 5.6.x or later, use the httpclient5-observation module, which supersedes the instrumentation in Micrometer and is not vulnerable to this issue.
Otherwise, if you are using Apache HTTP Client 5.x and Micrometer 1.12.0 or later, migrate away from MicrometerHttpClientInterceptor to the non-vulnerable ObservationExecChainHandler which handles terminal outcomes correctly by design.
To report a security vulnerability for a project within the Spring portfolio, see the Security Policy