CyberSecBulletin

Uncontrolled Recursion

CWE-674

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

We track 233 vulnerabilities of this type. 100% are rated high or critical, and the average CVSS score is 7.7.

How this weakness is prevented

  • 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.

Latest Uncontrolled Recursion vulnerabilities

  • 8.2 High severity

    graphql-php: Uncontrolled Recursion

    CVE-2026-107376Webonyx

    webonyx graphql-php is a PHP implementation of the GraphQL specification. Prior to 15.32.3, GraphQL\Language\Parser performs recursive descent without a recursion limit in parseSelectionSet, parseValueLiteral, and parseTypeReference. A remote attacker can subm

  • 7.5 High severity

    msgpack5: Uncontrolled Recursion

    CVE-2026-107300Mcollina

    msgpack5 is a msgpack v5 implementation for node.js and the browser. Prior to 6.1.0, the streaming decoder recursively invokes itself for each complete MessagePack value remaining in a chunk. A remote peer can send one chunk containing many small valid values,

  • 7.5 High severity

    DCMTK: Uncontrolled Recursion

    CVE-2026-44031OFFIS

    Uncontrolled recursion in DcmSequenceOfItems::read() and DcmItem::read() in the dcmdata library of OFFIS DCMTK 3.7.0 allows a remote, unauthenticated attacker to cause a denial of service (stack exhaustion and process crash) via a DICOM dataset containing deep

  • 7.5 High severity

    excelize: Uncontrolled Recursion

    CVE-2026-107216Qax-os

    Excelize is a Go language library for reading and writing Microsoft Excel spreadsheets. From 2.8.1 to 2.11.0, ANCHORARRAY recursively calls the exported CalcCellValue function, creating a fresh calculation context at each cycle and bypassing in-flight and iter

  • 8.7 High severity

    stablelib: Uncontrolled Recursion

    CVE-2026-106447StableLib

    StableLib is a stable library of useful TypeScript and JavaScript code. Prior to 2.0.4, the @stablelib/cbor decoder recursively processes nested CBOR arrays, maps, and tags through _decodeValue() without enforcing a maximum nesting depth. A sufficiently deep s

  • 8.2 High severity

    Apache Thrift: Uncontrolled Recursion

    CVE-2026-96289Apache

    Uncontrolled Recursion vulnerability in Apache Thrift PHP bindings. This issue affects Apache Thrift: before 0.25.0. Users are recommended to upgrade to version 0.25.0, which fixes the issue.

  • 8.7 High severity

    Apache Thrift: Uncontrolled Recursion

    CVE-2026-83663Apache

    Uncontrolled Recursion vulnerability in Apache Thrift go bindings. Both Go transports satisfy a read out of a buffered frame and, when that frame yields no payload bytes, read the next frame and call `Read` again instead of looping. A peer produces such a fram

  • 8.7 High severity

    Apache Thrift: Uncontrolled Recursion

    CVE-2026-66858Apache

    The protocol skip routine in several Apache Thrift bindings did not apply the binding's recursion limit, so a message that nests unknown fields deeply enough can exhaust the stack. Affected: the Python C++ accelerator (the pure-Python protocols are not affecte

  • 8.2 High severity

    Apache Thrift: Uncontrolled Recursion

    CVE-2026-96288Apache

    Uncontrolled Recursion, Allocation of resources without limits or throttling vulnerability in Apache Thrift Erlang bindings. This issue affects Apache Thrift: before 0.25.0. Users are recommended to upgrade to version 0.25.0, which fixes the issue.

  • 8.2 High severity

    Apache Thrift: Uncontrolled Recursion

    CVE-2026-94650Apache

    Uncontrolled Recursion vulnerability in Apache Thrift c_glib bindings. This issue affects Apache Thrift: before 0.25.0. Users are recommended to upgrade to version 0.25.0, which fixes the issue.

  • 8.7 High severity

    Apache Thrift: Uncaught Exception

    CVE-2026-85493Apache

    Uncontrolled Recursion vulnerability in Apache Thrift Dart and Java ME bindings. This issue affects Apache Thrift: before 0.25.0. Users are recommended to upgrade to version 0.25.0, which fixes the issue.

  • 7.5 High severity

    bc-csharp: Uncontrolled Recursion

    CVE-2026-103600Legion of the Bouncy Castle

    Uncontrolled recursion in the ASN.1 parser (Asn1InputStream, Asn1StreamParser) in Legion of the Bouncy Castle Inc. bc-csharp before 2.7.0 allows a remote unauthenticated attacker to cause a denial of service via a crafted ASN.1 encoding of deeply nested constr

  • 7.5 High severity

    ion-python: Uncontrolled Recursion

    CVE-2026-104020Amazon

    Uncontrolled recursion in the Ion reader in Amazon Ion Python before 0.15.0 might allow a remote unauthenticated actor to crash the application using the library, resulting in a denial of service, via a crafted, deeply nested Ion value. To remediate this issue

  • 8.7 High severity

    Apache PLC4X: Improper Validation of Array Index

    CVE-2026-102510Apache

    Integer Overflow, Improper Validation of Array Index, Uncontrolled Recursion and Memory Allocation with Excessive Size Value in the Go implementation of Apache PLC4X (PLC4Go) allow a malicious device, or an attacker able to inject network traffic, to crash or

  • 8.7 High severity

    Apache PLC4X: Uncontrolled Recursion

    CVE-2026-102509Apache

    Memory Allocation with Excessive Size Value, Allocation of Resources Without Limits, and Uncontrolled Recursion in the Java implementation of Apache PLC4X (PLC4J) allow a malicious or impersonated device to exhaust the memory or stack of the client application

  • 7.1 High severity

    gosub-engine: Uncontrolled Recursion

    CVE-2026-103087Gosub-io

    Uncontrolled recursion in the Gosub browser engine (gosub-engine) through 0.1.0 and main before commit 46868b3 allows a remote attacker to cause a Denial of Service (stack exhaustion and application crash) via an SVG document containing an excessive number of

  • 7.5 High severity

    Apache XMLSchema: Uncontrolled Recursion

    CVE-2026-102497Apache

    The Apache XmlSchema walker (xmlschema-walker) doesn't detect cycles in type derivation, substitution groups, model groups or attribute groups. A malicious schema with such a cycle can make the walker recurse until the stack overflows, causing a denial of serv

  • 7.5 High severity

    Apache XMLSchema: Uncontrolled Recursion

    CVE-2026-102496Apache

    Apache XmlSchema doesn't limit how deeply schema structures can be nested when it builds its schema model, so a malicious schema can make parsing recurse until the stack overflows. This causes a denial of service. Users are recommended to upgrade to version 2.

  • 7.5 High severity

    Apache XMLSchema: Uncontrolled Recursion

    CVE-2026-102495Apache

    Apache XmlSchema doesn't limit how deeply schema imports and includes can be nested, so a malicious schema can make parsing recurse until the stack overflows. This causes a denial of service. Users are recommended to upgrade to version 2.3.3, which fixes this

  • 7.5 High severity

    nest: Uncaught Exception

    CVE-2026-102281Nestjs

    Nest is a framework for building scalable Node.js server-side applications. Prior to 11.2.4 and 12.0.2, a single message with a deeply nested object in its pattern can terminate a NestJS microservice using the TCP or RabbitMQ transport. ServerTCP#handleMessage

  • 7.5 High severity

    brace-expansion: Uncontrolled Resource Consumption

    CVE-2026-102278Juliangruber

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.20, 2.1.6, 3.0.8, and 5.0.11, deeply nested brace groups cause expand_() to recurse once per nesting level at comma-member and single-set expansion site

  • 7.5 High severity

    brace-expansion: Uncontrolled Resource Consumption

    CVE-2026-102276Juliangruber

    The brace-expansion library generates arbitrary strings containing a common prefix and suffix. Prior to 1.1.19, 2.1.5, 3.0.7, and 5.0.10, crafted brace patterns can exhaust the native stack in parseCommaParts because parseCommaParts recursively processes the r

  • 7.5 High severity

    PHP: Uncontrolled Recursion

    CVE-2026-91765PHP Group

    cleanup_xml_node() in the SOAP XML parser recurses once per XML nesting level with no depth limit. An unauthenticated attacker can post a SOAP request containing tens of thousands of nested elements to any SoapServer endpoint, exhaust the stack and crash the p

  • 7.5 High severity

    Apache Qpid Broker-J: Uncontrolled Recursion

    CVE-2026-92564Apache

    A pre-authentication attacker could leverage type nesting to cause a StackOverflowError potentially leading to denial of service. This issue affects Apache Qpid Broker-J: through 10.1.0. Users are recommended to upgrade to version 10.1.1, which fixes the issue

  • 7.5 High severity

    moquette: Uncontrolled Recursion

    CVE-2026-95844Moquette-io

    Moquette is a lightweight Java MQTT broker. Prior to 0.18.1, Moquette does not limit the depth of topic names and topic filters before processing them through recursive CTrie insertion and matching operations. A remote client can publish or subscribe with a de

  • 7.5 High severity

    Dream Machines: Uncontrolled Recursion

    CVE-2026-95861Ubiquiti

    A malicious actor with access to the network could exploit an Uncontrolled Recursion vulnerability found in certain UniFi gateway devices to execute a Denial of Service (DoS) attack on the device.

  • 7.8 High severity

    Adobe Bridge: Uncontrolled Recursion

    CVE-2026-75655Adobe

    Bridge is affected by an Uncontrolled Recursion vulnerability that could result in arbitrary code execution in the context of the current user. An attacker could exploit this vulnerability to execute arbitrary code. Exploitation of this issue requires user int

  • 7.5 High severity

    Apache Neethi: Uncontrolled Recursion

    CVE-2026-91863Apache

    A specially crafted WS-Policy document with deeply nested policy elements can bypass Neethi's nesting-depth limit and exhaust the thread stack, crashing the parser (denial of service). Users are recommended to upgrade to version 3.2.4, which fixes this issue.

  • 8.7 High severity

    temporalio/sqlparser: Uncontrolled Recursion

    CVE-2026-65651Temporal Technologies

    temporalio/sqlparser accepts SQL containing deeply nested unary expressions and can return a correspondingly deep abstract syntax tree without enforcing an applicable nesting limit. The library's String and Walk operations recursively traverse that tree. An ap

  • 8.6 High severity

    icinga2: Uncontrolled Recursion

    CVE-2026-61551Icinga

    Icinga 2 is an open source monitoring system. Prior to 2.14.9, 2.15.4, and 2.16.2, parsing deeply nested JSON can exhaust the call stack because nesting depth is not bounded. The affected JSON parsing paths are reachable by unauthenticated network clients thro

  • 7.5 High severity

    braces: Uncontrolled Recursion

    CVE-2026-93687Micromatch

    braces through 3.0.3 contains a stack overflow vulnerability in the recursive AST walkers that lack depth guards. Attackers can supply deeply nested brace patterns under the character limit to exhaust the call stack and terminate the Node.js process with an un

  • 7.5 High severity

    swag: Uncontrolled Recursion

    CVE-2026-93450Go-openapiEPSS 1.1%

    go-openapi/swag jsonutils before 0.27.1 contains a stack overflow vulnerability in ordered JSON parsing and serialization due to unbounded recursion with no depth limit. Remote unauthenticated attackers can submit deeply nested JSON documents to services accep

  • 7.5 High severity

    redis-parser: Uncontrolled Recursion

    CVE-2026-93435NodeRedis

    redis-parser through 3.0.0 contains a denial of service vulnerability in the RESP protocol parser that allows malicious Redis endpoints to crash the client process through unbounded recursion on nested arrays. Attackers can send crafted RESP byte streams with

  • 8.2 High severity

    protobuf: Uncontrolled Recursion

    CVE-2026-54451Elixir-protobuf

    Elixir protobuf is a pure Elixir implementation of Google Protobuf. From 0.8.0 until 0.16.1, services that decode attacker-controlled protobuf bytes with Protobuf.Decoder can be taken offline when the schema contains a self-referential or cyclic message type.

  • 8.7 High severity

    protobuf-javascript (aka google-protobuf npm…: Uncontrolled Recursion

    CVE-2026-89418Google

    google-protobuf contains an unbounded recursion when parsing unknown protobuf group fields. An attacker can send a small crafted payload of deeply nested START_GROUP wire bytes to any Node.js service that calls the generated deserializeBinary() API, causing a

  • 7.5 High severity

    docx4j: Uncontrolled Recursion

    CVE-2026-53752Plutext

    docx4j is an open source Java library for creating, editing, and saving OpenXML packages, including DOCX, PPTX, and XLSX files. Prior to 11.5.14, PropertyResolver and adjacent helpers recursively follow the WordprocessingML w:basedOn style inheritance chain wi

  • 7.5 High severity

    Fast-DDS: Uncontrolled Resource Consumption

    CVE-2026-22591eProsima

    eprosima Fast DDS is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). Prior to versions 2.6.12, 2.14.6, 3.2.4, and 3.4.3, Fast DDS’s implementation of SQL‑based content filtering (DDSSQLFilter) allows a

  • 7.5 High severity

    go-attestation: Uncontrolled Recursion

    CVE-2026-19201Google

    An uncontrolled recursion vulnerability in the Windows SIPA event log parser of Google go-attestation versions up to and including 0.6.1 allows an attacker to cause a denial of service (DoS). The (*WinEvents).readELAMAggregation function recurses for every nes

  • 7.1 High severity

    qt: Uncontrolled Recursion

    CVE-2026-11573Qt

    Uncontrolled recursion (CWE-674) in the QDomDocument/QDomNode serialization path of the Qt XML module (QtXml, qtbase). QDomElementPrivate::save() and QDomNodePrivate::save() recurse mutually, consuming one stack frame per level of element nesting with no depth

  • 7.5 High severity

    toml-node: Uncontrolled Recursion

    CVE-2026-77465BinaryMuse

    toml-node is a TOML parser for Node.js and the browser. Prior to 4.2.0, toml.parse() uses a Peggy 5.1.0 generated recursive-descent parser in lib/parser.js whose peg$parsevalue, peg$parsearray, and peg$parseinline_table_entry functions recurse through nested a