The product performs an iteration or loop without sufficiently limiting the number of times that the loop is executed.
If the iteration can be influenced by an attacker, this weakness could allow attackers to consume excessive resources such as CPU or memory. In many cases, a loop does not need to be infinite in order to cause enough resource consumption to adversely affect the product or its host system; it depends on the amount of resources consumed per iteration.
Impact: DoS: Resource Consumption (CPU)DoS: Resource Consumption (Memory)DoS: AmplificationDoS: Crash, Exit, or Restart
Excessive looping will cause unexpected consumption of resources, such as CPU cycles or memory. The product's operation may slow down, or cause a long time to respond. If limited resources such as memory are consumed for each iteration, the loop may eventually cause a crash or program exit due to exhaustion of resources, such as an out-of-memory error.
void do_something_recursive (int flg) {
cvoid do_something_recursive (int flg) {
cjava
// get inventory count for book* int inventoryCount = inventory.getIventoryCount(bookISBN);
java
javajava
// validate rateSold variable* if (rateSold < 1) { ``` return isReorder; } ... }