CVE-2026-66079: RabbitMQ: Pre-auth AMQP 1.0 array32 zero-width element DoS
RabbitMQ is a messaging and streaming broker. Prior to versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6, parsearrayprimitive/2 for constructor 0x45 (list0) returns an element with byte-width B = 0. The enclosing array32 parser at line 148 reads a 4-byte Count from the wire and loops Count times consuming B bytes each , with B = 0, no input is consumed and the loop builds a list of Count empty elements bounded only by the 32-bit field. The SASL-mechanisms / SASL-init frame is parsed by amqp10framing:decodebin/1 from rabbitamqpreader.erl:412 before authentication completes. The pre-auth incomingmaxframesize (default 8192 bytes) caps the frame, not the Count field, so a 19-byte payload with Count = 0xFFFFFFFF is accepted. No maxheapsize is set on the reader process. An unauthenticated network attacker can crash any RabbitMQ node that has the AMQP 1.0 listener enabled (default port 5672) by sending a single ~19-byte frame. The reader process attempts to build a list of ~4 billion empty elements, exhausting heap memory and terminating the Erlang VM. All tenants and protocols on the node lose service. Preconditions include Network reachability to the AMQP listener (port 5672, enabled by default) No authentication required. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
RabbitMQto a version that resolves this vulnerability.Fixed in 3.13.15 - Upgrade
Upgrade
RabbitMQto a version that resolves this vulnerability.Fixed in 4.0.20 - Upgrade
Upgrade
RabbitMQto a version that resolves this vulnerability.Fixed in 4.1.11 - Upgrade
Upgrade
RabbitMQto a version that resolves this vulnerability.Fixed in 4.2.6
Event History
Frequently Asked Questions
Which deployments are exposed?
Any RabbitMQ node running a version earlier than 3.13.15, 4.0.20, 4.1.11, or 4.2.6 is exposed if its AMQP 1.0 listener is enabled and reachable over the network. The listener uses port 5672 by default.
Does an attacker need credentials or an existing AMQP connection?
No. The vulnerable frame is parsed before authentication completes, so an unauthenticated network attacker can trigger the condition with a single approximately 19-byte frame.
What is the operational impact of a successful attack?
The reader process can attempt to allocate a list of roughly four billion empty elements, exhausting heap memory and terminating the Erlang VM. This causes service loss for all tenants and protocols on the affected node.
What can be done before an upgrade is available?
Ensure untrusted networks cannot reach the AMQP listener on port 5672, since network reachability to that listener is required. Nodes without the AMQP 1.0 listener enabled are not exposed to this attack path.
How can I determine whether a node needs remediation?
Check whether the node runs a version earlier than 3.13.15, 4.0.20, 4.1.11, or 4.2.6, and whether AMQP 1.0 is enabled on a network-reachable listener. The default incoming maximum frame size does not prevent exploitation because it limits frame size rather than the attacker-controlled Count field.