Miggo Logo

CVE-2023-34055:
Spring Boot Actuator denial of service vulnerability

5.3

CVSS Score
3.1

Basic Information

EPSS Score
0.51262%
CWE
-
Published
11/28/2023
Updated
7/9/2024
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.springframework.boot:spring-boot-actuatormaven< 2.7.182.7.18
org.springframework.boot:spring-boot-actuatormaven>= 3.0.0, < 3.0.133.0.13
org.springframework.boot:spring-boot-actuatormaven>= 3.1.0, < 3.1.63.1.6

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (CVE-2023-34055) describes a Denial of Service in Spring Boot Actuator due to specially crafted HTTP requests. The provided commit (5490e73922b37a7f0bdde43eb318cb1038b45d60) modifies how HTTP method tags are generated in WebFluxTags.java and WebMvcTags.java.

Before the patch, both WebFluxTags.method and WebMvcTags.method would create a Tag object using the literal string of the HTTP method from the incoming request. If an attacker sent numerous requests with unique (and potentially long or malformed) HTTP method strings, this would lead to the creation of a large number of unique Tag objects. These tags are typically used for metrics and can be stored in memory, leading to memory exhaustion and a DoS condition.

The patch changes this behavior by first attempting to resolve the HTTP method to a known/standard HttpMethod. If the method is not standard (e.g., HttpMethod.resolve() returns null or exchange.getRequest().getMethod() returns null for WebFlux), a generic METHOD_UNKNOWN tag is used. This prevents the unbounded creation of new Tag objects from arbitrary input in the HTTP method, thus mitigating the DoS vulnerability.

The vulnerable functions are therefore the method functions in these two classes as they existed before this patch, because they directly processed potentially malicious input (the HTTP method string) in a way that could lead to resource exhaustion.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

In Sprin* *oot v*rsions *.*.* - *.*.**, *.*.*-*.*.** *n* *.*.*-*.*.*, it is possi*l* *or * us*r to provi** sp**i*lly *r**t** *TTP r*qu*sts t**t m*y **us* * **ni*l-o*-s*rvi** (*oS) *on*ition. Sp**i*i**lly, *n *ppli**tion is vuln*r**l* w**n *ll o* t**

Reasoning

T** vuln*r**ility (*V*-****-*****) **s*ri**s * **ni*l o* S*rvi** in Sprin* *oot **tu*tor *u* to sp**i*lly *r**t** *TTP r*qu*sts. T** provi*** *ommit (****************************************) mo*i*i*s *ow *TTP m*t*o* t**s *r* **n*r*t** in `W***luxT**