CVE-2026-69220 in RabbitMQinfo

Summary

by MITRE • 08/18/2026

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 08/18/2026

The RabbitMQ Java client library serves as a critical component for enabling Java and JVM-based applications to establish connections with RabbitMQ message brokers, facilitating robust asynchronous communication patterns across distributed systems. A significant security vulnerability was identified within the core parsing logic of this library, specifically residing in the ValueReader class located at src/main/java/com/rabbitmq/client/impl/ValueReader.java. This component is responsible for deserializing AMQP protocol data structures into Java objects during the connection establishment phase and subsequent message handling operations. The flaw centers on the recursive methods readTable and readArray, which are designed to parse complex nested data types defined in the Advanced Message Queuing Protocol specification. These methods invoke readFieldValue recursively when encountering deeply nested table or array values without implementing any mechanism to track or limit the depth of recursion.

This architectural oversight creates a direct path for stack exhaustion attacks against clients using vulnerable versions of the library prior to 5.33.1. An attacker positioned as a malicious AMQP server, or potentially an intermediary network device capable of modifying traffic in real-time, can exploit this lack of validation by crafting specially crafted connection frames. Specifically, during the pre-authentication connection.start frame exchange, which is mandatory for establishing any RabbitMQ session, the attacker can embed approximately 580 levels of nested table structures. This payload size remains within the default maximum frame limit of 131072 bytes, allowing it to bypass basic length-based filtering mechanisms that might otherwise detect oversized packets. The recursive parsing logic processes each level of nesting by pushing new stack frames onto the Java Virtual Machine call stack until the predefined memory allocation for thread stacks is exhausted.

The operational impact of this vulnerability is a severe denial of service condition affecting the specific client application instance under attack. When the maximum recursion depth is exceeded, the JVM throws a StackOverflowError. Because this error occurs within the input processing thread responsible for reading network data from the socket, it causes that thread to terminate abruptly without graceful recovery or reconnection logic in many default configurations. Consequently, the Java application loses its ability to communicate with the message broker, effectively halting any dependent business processes that rely on RabbitMQ for task distribution, event streaming, or inter-service communication. This disruption is particularly dangerous because it occurs during the initial handshake phase, meaning no authentication credentials are required to trigger the exploit, thereby lowering the barrier for entry significantly and allowing unauthenticated actors to disrupt service availability.

From a classification perspective, this vulnerability aligns with CWE-675, which denotes operations on data with insufficiently restricted recursion depth, leading to resource exhaustion. It also maps closely to ATT&CK technique T1498, Network Denial of Service, specifically the sub-category of Direct Network Flood or Resource Exhaustion via protocol abuse. The attack vector is classified as remote and unauthenticated, leveraging the trust placed in network protocols during initialization sequences where input validation is often less rigorous than in authenticated data processing paths.

To mitigate this risk, organizations utilizing the RabbitMQ Java client must immediately upgrade to version 5.33.1 or later, which implements explicit depth limits for recursive parsing operations. For environments where immediate patching is not feasible due to dependency constraints, temporary mitigations include deploying network-level intrusion prevention systems that inspect AMQP traffic patterns and drop frames exhibiting abnormally high nesting complexity before they reach the client application. Additionally, configuring JVM parameters such as -Xss can increase stack size limits, though this only delays rather than prevents exploitation and may introduce other stability issues if set excessively high. Long-term architectural improvements should include implementing circuit breakers in client applications to detect connection failures rapidly and attempting reconnection with exponential backoff, ensuring that transient parsing errors do not permanently disable critical messaging infrastructure.

Responsible

GitHub M

Reservation

08/03/2026

Disclosure

08/18/2026

Moderation

accepted

CPE

ready

EPSS

0.00399

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!