CWE-400: Uncontrolled Resource Consumption

low-risk

The product does not properly control the allocation and maintenance of a limited resource.

Abstraction: Class

Common Consequences

Availability DoS: Crash, Exit, or Restart
Access Control Bypass Protection Mechanism

Detection Methods

Automated Static Analysis

Automated static analysis typically has limited utility in recognizing resource exhaustion problems, except for program-independent system resources such as files, sockets, and processes. For system resources, automated static analysis may be able to detect circumstances in which resources are not released after they have expired. Automated analysis of configuration files may be able to detect settings that do not specify a maximum value. Automated static analysis tools will not be appropriate for detecting exhaustion of custom resources, such as an intended security policy in which a bulletin board user is only allowed to make a limited number of posts per day.

Automated Dynamic Analysis

Certain automated dynamic analysis techniques may be effective in spotting resource exhaustion problems, especially with resources such as processes, memory, and connections. The technique may involve generating a large number of requests to the product within a short time frame.

Fuzzing

While fuzzing is typically geared toward finding low-level implementation bugs, it can inadvertently find resource exhaustion problems. This can occur when the fuzzer generates a large number of test cases but does not restart the targeted product in between test cases. If an individual test case produces a crash, but it does not do so reliably, then an inability to handle resource exhaustion may be the cause.

Real-World Examples (10)

CVE CVSS EPSS KEV
CVE-2023-44487 7.5 94.4% Y
CVE-2021-44228 10.0 94.4% Y
CVE-2021-22883 7.5 89.4%
CVE-2019-5645 7.5 87.9%
CVE-2019-5645 7.5 87.9%
CVE-2018-6389 7.5 87.5%
CVE-2018-1000115 7.5 82.5%
CVE-2018-17281 7.5 80.3%
CVE-2023-28342 7.5 79.6%
CVE-2016-8610 7.5 71.1%
6
/ 100
low-risk
Active Threat 6/50 · Minimal
Exploit Availability 0/50 · Minimal