Skip to content
OpenAdvisories

Weakness (CWE)

CWE-674: Uncontrolled Recursion

Class Draft

The product does not properly control the amount of recursion that takes place, consuming excessive resources, such as allocated memory or the program stack.

How to prevent it (2 mitigations)
  1. Implementation

    Ensure that an end condition will be reached under all logic conditions. The end condition may include checking against the depth of recursion and exiting with an error if the recursion goes too deep. The complexity of the end condition contributes to the effectiveness of this action.

  2. Implementation

    Increase the stack size.

Source: MITRE CWE-674

506 results · Feed

  • Medium 5.5

    GPAC MP4Box 2.1-DEV-rev649-ga8f438d20 has a segment fault (/stack overflow) due to infinite recursion in Media_GetSampl…

  • High 8.2
    CVE-2022-41966 Public exploit

    XStream Denial of Service via stack overflow

    XStream serializes Java objects to XML and back again. Versions prior to 1.4.20 may allow a remote attacker to terminate the application with a stack overflow error, resulting in a denial of service only via manipulation the processed input stream. The attack…

  • High 7.5

    Uncontrolled Recursion in Loofah

    Loofah is a general library for manipulating and transforming HTML/XML documents and fragments, built on top of Nokogiri. Loofah >= 2.2.0, < 2.19.1 uses recursion for sanitizing CDATA sections, making it susceptible to stack exhaustion and raising a SystemSta…

  • Medium 5.9

    TYPO3 subject to Uncontrolled Recursion resulting in Denial of Service

    TYPO3 is an open source PHP based web content management system. In versions prior to 9.5.38, 10.4.33, 11.5.20, and 12.1.1, requesting invalid or non-existing resources via HTTP triggers the page error handler, which again could retrieve content to be shown a…

  • Medium 5.3

    HAProxyMessageDecoder Stack Exhaustion DoS

    Netty project is an event-driven asynchronous network application framework. In versions prior to 4.1.86.Final, a StackOverflowError can be raised when parsing a malformed crafted message due to an infinite recursion. This issue is patched in version 4.1.86.F…

  • High 7.5

    Mastodon through 4.0.2 allows attackers to cause a denial of service (large Sidekiq pull queue) by creating bot account…

  • Unscored —

    It was possible to trigger an infinite recursion condition in the error handler when Hermes executed specific malicious…

  • Low 2.3

    phar wrapper can occur dos when using quine gzip file

    In PHP versions before 7.4.31, 8.0.24 and 8.1.11, the phar uncompressor code would recursively uncompress "quines" gzip files, resulting in an infinite loop.

  • Medium 6.5

    Stack Buffer Overflow in Jettison

    Those using Jettison to parse untrusted XML or JSON data may be vulnerable to Denial of Service attacks (DOS). If the parser is running on user supplied input, an attacker may supply content that causes the parser to crash by Out of memory. This effect may su…

  • Medium 5.3

    Uncontrolled Recursion in gpac/gpac

    Uncontrolled Recursion in GitHub repository gpac/gpac prior to 2.1.0-DEV.

  • Unscored —

    A flaw was found in systemd. An uncontrolled recursion in systemd-tmpfiles may lead to a denial of service at boot time…

  • High 7.5

    Stack exhaustion when unmarshaling certain documents in encoding/xml

    Uncontrolled recursion in Unmarshal in encoding/xml before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via unmarshalling an XML document into a Go struct which has a nested field that uses the 'any' field tag.

  • High 7.5

    Stack exhaustion when decoding certain messages in encoding/gob

    Uncontrolled recursion in Decoder.Decode in encoding/gob before Go 1.17.12 and Go 1.18.4 allows an attacker to cause a panic due to stack exhaustion via a message which contains deeply nested structures.

  • High 7.5

    graphql-go has infinite recursion in the type definition parser

    graphql-go (aka GraphQL for Go) through 0.8.0 has infinite recursion in the type definition parser.

  • High 7.5

    Juniper is vulnerable to @DOS GraphQL Nested Fragments overflow

    Juniper is a GraphQL server library for Rust. Affected versions of Juniper are vulnerable to uncontrolled recursion resulting in a program crash. This issue has been addressed in version 0.15.10. Users are advised to upgrade. Users unable to upgrade should li…

  • High 8.3

    Sandbox Bypass

    This affects the package vm2 before 3.6.11. It is possible to trigger a RangeError exception from the host rather than the "sandboxed" context by reaching the stack call limit with an infinite recursion. The returned object is then used to reference the mainM…

  • Medium 6.5

    URL previews can crash Synapse media repositories or Synapse monoliths

    Synapse is an open source home server implementation for the Matrix chat network. In versions prior to 1.61.1 URL previews of some web pages can exhaust the available stack space for the Synapse process due to unbounded recursion. This is sometimes recoverabl…

  • Medium 6.5

    Uncontrolled Recursion in rulex

    rulex is a new, portable, regular expression language. When parsing untrusted rulex expressions, the stack may overflow, possibly enabling a Denial of Service attack. This happens when parsing an expression with several hundred levels of nesting, causing the …

  • High 7.5

    DoS Vulnerability in URLEncodedFormDecoder in Vapor

    Vapor is a server-side Swift HTTP web framework. When using automatic content decoding an attacker can craft a request body that can make the server crash with the following request: `curl -d "array[_0][0][array][_0][0][array]$(for f in $(seq 1100); do echo -…

  • Medium 5.5

    Uncontrolled Recursion in vim/vim

    Uncontrolled Recursion in GitHub repository vim/vim prior to 8.2.4975.

  • High 7.7

    Improper path handling in Kustomization files allows for denial of service

    Flux is an open and extensible continuous delivery solution for Kubernetes. Path Traversal in the kustomize-controller via a malicious `kustomization.yaml` allows an attacker to cause a Denial of Service at the controller level. Workarounds include automated …

  • Unscored —

    Due to an uncontrolled recursion in SAP Web Dispatcher and SAP Internet Communication Manager, the application may cras…

  • High 7.5

    Pinot segment push endpoint has a vulnerability in unprotected environments

    In 0.9.3 or older versions of Apache Pinot segment upload path allowed segment directories to be imported into pinot tables. In pinot installations that allow open access to the controller a specially crafted request can potentially be exploited to cause disr…

  • Medium 5.5

    libiberty/rust-demangle.c in GNU GCC 11.2 allows stack consumption in demangle_const, as demonstrated by nm-new.

  • Medium 4.4

    Crash when a cluster is deleted in Envoy

    Envoy is an open source edge and service proxy, designed for cloud-native applications. When a cluster is deleted via Cluster Discovery Service (CDS) all idle connections established to endpoints in that cluster are disconnected. A recursion was introduced in…

  • Medium 6.5
    CVE-2022-25313 Public exploit

    In Expat (aka libexpat) before 2.4.5, an attacker can trigger stack exhaustion in build_model via a large nesting depth…

  • High 7.5

    Stack overflow in Tensorflow

    Tensorflow is an Open Source Machine Learning Framework. The `GraphDef` format in TensorFlow does not allow self recursive functions. The runtime assumes that this invariant is satisfied. However, a `GraphDef` containing a fragment such as the following can b…

  • Medium 5.9
    CVE-2021-45105 Public exploit EPSS 100%

    Apache Log4j2 does not always protect from infinite recursion in lookup evaluation

    Apache Log4j2 versions 2.0-alpha1 through 2.16.0 (excluding 2.12.3 and 2.3.1) did not protect from uncontrolled recursion from self-referential lookups. This allows an attacker with control over Thread Context Map data to cause a denial of service when a craf…

  • High 7.5

    Infinite length chain of RRDP repositories

    NLnet Labs Routinator prior to 0.10.2 happily processes a chain of RRDP repositories of infinite length causing it to never finish a validation run. In RPKI, a CA can choose the RRDP repository it wishes to publish its data in. By continuously generating a ne…

  • High 7.5
    CVE-2021-42697 Public exploit EPSS 36%

    Uncontrolled Recursion in Akka HTTP

    Akka HTTP 10.1.x before 10.1.15 and 10.2.x before 10.2.7 can encounter stack exhaustion while parsing HTTP headers, which allows a remote attacker to conduct a Denial of Service attack by sending a User-Agent header with deeply nested comments.

  • Medium —

    Uncontrolled recursion leads to abort in deserialization

    Affected versions of this crate did not properly check for recursion while deserializing aliases. This allows an attacker to make a YAML file with an alias referring to itself causing an abort. The flaw was corrected by checking the recursion depth.

  • Medium 5.7

    Denial of Service in Elasticsearch

    In Elasticsearch versions before 7.13.3 and 6.8.17 an uncontrolled recursion vulnerability that could lead to a denial of service attack was identified in the Elasticsearch Grok parser. A user with the ability to submit arbitrary queries to Elasticsearch coul…

  • Medium —

    Uncontrolled Recursion in HTTP2ToRawGRPCServerCodec

    HTTP2ToRawGRPCServerCodec in gRPC Swift 1.1.1 and earlier allows remote attackers to deny service via the delivery of many small messages within a single HTTP/2 frame, leading to Uncontrolled Recursion and stack consumption.

  • Unscored —

    An unlimited recursion in DxeCore in EDK II.

  • Unscored —

    A flaw was discovered in GNU libiberty within demangle_path() in rust-demangle.c, as distributed in GNU Binutils versio…

  • Medium 5.9

    golang.org/x/net/http/httpguts vulnerable to Uncontrolled Recursion

    net/http in Go before 1.15.12 and 1.16.x before 1.16.4 allows remote attackers to cause a denial of service (panic) via a large header to ReadRequest or ReadResponse. Server, Transport, and Client can each be affected in some configurations.

  • Unscored —

    A flaw was found in PoDoFo 0.9.7. An uncontrolled recursive call in PdfNamesTree::AddToDictionary function in src/podof…

  • Unscored —

    A flaw was found in PoDoFo 0.9.7. An uncontrolled recursive call among PdfTokenizer::ReadArray(), PdfTokenizer::GetNext…

  • Unscored —

    OPC Foundation UA .NET Standard versions prior to 1.4.365.48 and OPC UA .NET Legacy are vulnerable to an uncontrolled r…

  • Low 2.5

    Stack overflow in `ParseAttrValue` with nested tensors

    TensorFlow is an end-to-end open source platform for machine learning. The implementation of `ParseAttrValue`(https://github.com/tensorflow/tensorflow/blob/c22d88d6ff33031aa113e48aa3fc9aa74ed79595/tensorflow/core/framework/attr_value_util.cc#L397-L453) can be…