Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CWE-835 (不可达退出条件的循环(无限循环)) — Vulnerability Class 334

334 vulnerabilities classified as CWE-835 (不可达退出条件的循环(无限循环)). AI Chinese analysis included.

CWE-835 represents a logic error where a software loop lacks a reachable termination condition, resulting in an infinite execution cycle. This weakness typically manifests when developers fail to update loop variables correctly or rely on floating-point comparisons prone to precision errors. Attackers exploit this vulnerability to trigger Denial of Service (DoS) attacks by consuming excessive CPU resources, effectively freezing the application or system. To mitigate this risk, developers must ensure loop counters are properly incremented or decremented within the iteration body. Implementing strict boundary checks, avoiding direct equality comparisons with floating-point numbers, and utilizing static analysis tools can help detect unreachable exit conditions early. Additionally, incorporating timeout mechanisms or maximum iteration limits provides a safety net, ensuring that even if logic errors occur, the process terminates gracefully without exhausting system resources.

MITRE CWE Description
The product contains an iteration or loop with an exit condition that cannot be reached, i.e., an infinite loop.
Common Consequences (1)
Availability DoS: Resource Consumption (CPU), DoS: Resource Consumption (Memory), DoS: Amplification
An infinite loop will cause unexpected consumption of resources, such as CPU cycles or memory. The software's operation may slow down, or cause a long time to respond.
Examples (2)
In the following code the method processMessagesFromServer attempts to establish a connection to a server and read and process messages from the server. The method uses a do/while loop to continue trying to establish the connection to the server when an attempt fails.
int processMessagesFromServer(char *hostaddr, int port) { ... int servsock; int connected; struct sockaddr_in servaddr; // create socket to connect to server servsock = socket( AF_INET, SOCK_STREAM, 0); memset( &servaddr, 0, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(port); servaddr.sin_addr.s_addr = inet_addr(hostaddr); do { // establish connection to server connected = connect(servsock, (struct sockaddr *)&servaddr, sizeof(servaddr)); // if connected then read and process messages from server if (connected > -1) { // read and process messages ... } // keep tr
Bad · C
int processMessagesFromServer(char *hostaddr, int port) { ... // initialize number of attempts counter int count = 0; do { // establish connection to server connected = connect(servsock, (struct sockaddr *)&servaddr, sizeof(servaddr)); // increment counter count++; // if connected then read and process messages from server if (connected > -1) { // read and process messages ... } // keep trying to establish connection to the server // up to a maximum number of attempts } while (connected < 0 && count < MAX_ATTEMPTS); // close socket and return success or failure ... }
Good · C
For this example, the method isReorderNeeded is part of a bookstore application that determines if a particular book needs to be reordered based on the current inventory count and the rate at which the book is being sold.
public boolean isReorderNeeded(String bookISBN, int rateSold) { boolean isReorder = false; int minimumCount = 10; int days = 0; // get inventory count for book int inventoryCount = inventory.getIventoryCount(bookISBN); // find number of days until inventory count reaches minimum while (inventoryCount > minimumCount) { inventoryCount = inventoryCount - rateSold; days++; } // if number of days within reorder timeframe // set reorder return boolean to true if (days > 0 && days < 5) { isReorder = true; } return isReorder; }
Bad · Java
public boolean isReorderNeeded(String bookISBN, int rateSold) { ... // validate rateSold variable if (rateSold < 1) { return isReorder; } ... }
Good · Java
CVE ID Title CVSS Severity Published
CVE-2026-106164 Infinite Loop in Telerik Document Processing XLS Import — Telerik Document Processing Libraries 7.3 High 2026-10-07
CVE-2026-106568 ImageMagick: Infinite Loop when reading a crafted XMP profile — ImageMagick 5.3 Medium 2026-10-07
CVE-2026-107168 M17n-lib: parser infinite loop on malformed utf-8 in count_utf_8_chars() — Red Hat Enterprise Linux 10 6.2 Medium 2026-10-07
CVE-2026-106121 RabbitMQ: JSONReader in the default JSON-RPC mapper never terminates on truncated input, causing DoS — rabbitmq-java-client 4.9 Medium 2026-10-06
CVE-2026-106116 ImageSharp: BigTIFF IFD count can keep a decoder thread in a non-progressing loop — ImageSharp 5.3 Medium 2026-10-06
CVE-2026-88252 Sssd: sssd: denial of service via responder connection retry loop during file descriptor exhaustion — Red Hat Enterprise Linux 10 4.7 Medium 2026-10-06
CVE-2026-85476 Apache Thrift: c_glib `read_all` spins when the underlying read returns 0 — Apache Thrift 8.2 High 2026-10-02
CVE-2026-94654 Apache Thrift: Python `TNonblockingServer` busy-loops and stops selecting all fds after an 8192-byte-boundary frame — Apache Thrift 8.2 High 2026-10-02
CVE-2026-86535 Apache Thrift: A JSON member name can stall the Node server's event loop indefinitely — Apache Thrift 8.7 High 2026-10-02
CVE-2026-63575 PKCS#12 key derivation loops about 2^32 times on a zero or negative iteration count — bc-csharp 7.1 High 2026-10-02
CVE-2026-63570 Pkcs12Store.GetCertificateChain loops forever on cyclic issuer links — bc-csharp 7.1 High 2026-10-02
CVE-2026-96780 figlet is vulnerable to denial of service via unbounded loop when whitespaceBreak is used with a small width — figlet.js 8.2 High 2026-10-01
CVE-2026-103492 JetBrains YouTrack 2026.2前PSD附件DoS漏洞 — YouTrack 6.5 Medium 2026-10-01
CVE-2026-102253 iperf3 < 3.22 UDP Receive Worker Infinite Loop DoS — iperf3 7.5 High 2026-09-29
CVE-2026-97688 urllib3: Chunked Deflate streaming can enter an infinite loop — urllib3 6.9 Medium 2026-09-29
CVE-2026-95386 Loop with Unreachable Exit Condition ('Infinite Loop') in Wireshark — Wireshark 5.5 Medium 2026-09-29
CVE-2026-96418 Loop with Unreachable Exit Condition ('Infinite Loop') in Wireshark — Wireshark 5.5 Medium 2026-09-29
CVE-2026-97362 HFS2 2.4.0 Unauthenticated Denial of Service via Hung Serving Thread — hfs2 7.5 High 2026-09-24
CVE-2026-87082 Net::IDN::Punycode versions before 2.590 for Perl hang, crash or return a wrong label via unvalidated malformed UTF-8 in encode_punycode - - 2026-09-22
CVE-2026-82560 Pod::Text versions before 6.1.1 for Perl allow CPU and memory exhaustion formatting a POD document whose =over nesting drives the margin to the output width - - 2026-09-19
CVE-2026-61633 NanoMQ: Infinite Loop in UNSUBSCRIBE Decoder Leading to Remote DoS — nanomq 2.0 Low 2026-09-18
CVE-2026-84446 libheif: Sequence decode timing-table initialization allows non-terminating loops and unbounded memory, bypassing max_sequence_frames — libheif 7.5 High 2026-09-18
CVE-2026-93690 uri-js through 4.4.1 Denial of Service via removeDotSegments — uri-js 7.5 High 2026-09-18
CVE-2026-20154 Cisco Secure Firewall Adaptive Security Appliance Software and Secure Firewall Threat Defense Software Logging Denial of Service — Cisco Secure Firewall Adaptive Security Appliance (ASA) Software 8.6 High 2026-09-16
CVE-2026-62949 AsyncSSH: asyncio event-loop freeze via SSH maximum packet size = 0 in SSH_MSG_CHANNEL_OPEN / OPEN_CONFIRMATION — asyncssh 6.5 Medium 2026-09-16
CVE-2026-84997 react/http: A malformed HTTP chunked body can lead to a denial-of-service and peg the CPU — http 7.5 High 2026-09-16
CVE-2026-69210 Http4s: WebSocket decoder accepts negative length, causing infinite decode loop — http4s 7.5 High 2026-09-15
CVE-2026-91952 FreeRDP before 3.31.0 Denial of Service via pool_decode_rect — FreeRDP 6.5 Medium 2026-09-15
CVE-2026-80489 EUC_JISX0213 decoding may hang on crafted input — glibc 5.9 Medium 2026-09-15
CVE-2026-77117 SHIFT_JISX0213 decoding may hang on crafted input — glibc 5.9 Medium 2026-09-15

Vulnerabilities classified as CWE-835 (不可达退出条件的循环(无限循环)) represent 334 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.