OESA-2026-4765: rabbitmq-server security update
RabbitMQ is an implementation of AMQP, the emerging standard for high performance enterprise messaging. The RabbitMQ server is a robust and scalable implementation of an AMQP broker. Security Fix(es):
RabbitMQ is a messaging and streaming broker. From 3.13.0 until 3.13.15 and 4.0.20 and 4.1.11 and 4.2.6, Atom table exhaustion via management API node field. pUT /api/queues/:vhost/:name (and the exchanges and bindings endpoints) accepts a node JSON field. The value goes through rabbitnodes:make → listtoatom with no cluster membership check first. Each unique value permanently leaks one atom. A March 2026 refactoring (ea61ce2563) introduced safe helpers in rabbitmgmtnodes.erl (parsenodename, safeatom, and requirenodename, using binarytoexistingatom) and fixed several callers (QQ replica ops, wmauthattempts, wmnodememoryets, getsortreverse, and rabbitfederationmgmt), but getnode/1 in rabbitmgmtutil.erl:880-885, the primary vector used by directrequest/6, was not Roughly 900K requests crash the VM via systemlimit, and all tenants lose Any user with the management tag and one vhost, the lowest privilege This issue is fixed in versions 3.13.15 and 4.0.20 and 4.1.11 and 4.2.6.(CVE-2026-66073)
RabbitMQ is a messaging and streaming broker. Prior to versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, 4.3.0, When a binding is created on an x-jms-topic exchange, addbinding/3 reads the rjmserlangselector argument and passes it through erlscan:string/1 then erlparse:parseterm/1. erlscan:string/1 interns every atom literal it tokenizes. validatebinding/2 is a no-op (-> ok.), there is no length cap, and the surrounding try/catch cannot reclaim atoms. The Java JMS client compiles selectors client-side, but the server does not enforce this , a raw AMQP client can send arbitrary selector strings. An authenticated low-privilege AMQP user confined to one vhost can crash the entire broker node (cross-tenant DoS) in <100 bind calls. Preconditions include rabbitmqjmstopicexchange plugin enabled (bundled; required for any JMS deployment) Authenticated AMQP user with read on an x-jms-topic exchange + write on a queue (or configure to declare both). This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, 4.3.0.(CVE-2026-67220)
RabbitMQ is a messaging and streaming broker. From 3.13.0 until 3.13.15, 4.0.20, 4.1.11, and 4.2.6, the Web STOMP WebSocket handler enforced neither maxframesize nor logintimeout before authentication, allowing an unauthenticated client to keep a connection alive with a slow stream of small frames and accumulate unbounded pre-authentication state. The rabbitmqwebstomp plugin must be enabled, and no authentication is required to reach the vulnerable path. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6.(CVE-2026-67230)
RabbitMQ is a messaging and streaming broker. Prior to versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.1, The shovel management resource's isauthorized/2 delegates to rabbitmgmtutil:isauthorizedmonitor/2, which accepts the monitoring tag. But allowedmethods includes DELETE, and deleteresource/2 deletes / restarts shovel runtime parameters with no additional role check. A monitoring user , intended to have read-only visibility , can therefore delete or restart any shovel in any vhost they can see. A read-only monitoring user can delete or restart any dynamic shovel , a state-changing operation that the equivalent /api/parameters endpoint correctly restricts to policymaker. Preconditions include rabbitmqshovel + rabbitmqshovelmanagement plugins enabled Attacker has credentials with the monitoring tag. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.1.(CVE-2026-67233)
RabbitMQ is a messaging and streaming broker. From 4.2.0 until 4.2.9 and 4.3.3, the Shovel parameter parser converted attacker-controlled runtime parameter values into non-garbage-collected Erlang atoms before bounding them or checking a fixed allowlist. Exploitation requires network access to the Management HTTP API, valid credentials with both the management and policymaker tags, permission to set Shovel runtime parameters on a vhost, and the rabbitmqshovel and rabbitmqshovelmanagement plugins to be enabled. The attacker can exhaust the node-wide atom table and deny service, and malicious parameters are stored durably and reparsed when workers start, so atom pressure can recur after restart without a live attacker connection. This issue is fixed in versions 4.2.9 and 4.3.3.(CVE-2026-67415)
RabbitMQ is a messaging and streaming broker. Prior to 4.3.5, an authenticated user who can bind a queue to a topic exchange and publish to it can use consecutive # segments in a binding key to make both topic matchers revisit the same trie-node and routing-key-suffix states without memoization. The matcher materializes duplicate destinations before deduplication, causing combinatorial CPU work and memory pressure that can disrupt routing for all tenants. This vulnerability is fixed in 4.3.5.(CVE-2026-67419)
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
openeuler/rabbitmq-serverto a version that resolves this vulnerability.Fixed in 3.9.23-11.oe2403sp4 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 3.13.15 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.0.20 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.1.11 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.2.6 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.2.9 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.3.0 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.3.1 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.3.3 - Upgrade
Upgrade
rabbitmq-serverto a version that resolves this vulnerability.Fixed in 4.3.5
Event History
Child vulnerabilities
Contains the following vulnerabilities.
Frequently Asked Questions
Who can exploit this issue?
A user with the RabbitMQ management tag and access to a single vhost can exploit it. The issue does not require user interaction and can be reached over the network through management API endpoints.
What is the operational impact of successful exploitation?
An attacker can submit unique node field values that permanently consume Erlang atoms. At roughly 900,000 requests, atom-table exhaustion can crash the VM with a system limit condition, causing loss of service for all tenants.
Which releases contain the fix?
The issue is fixed in RabbitMQ versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6. Versions from 3.13.0 through the affected releases described in the advisory are exposed.
What can be done if an update cannot be applied immediately?
Restrict management-tag access to trusted users and limit access to the management API, especially its queue, exchange, and binding endpoints. Because exploitation relies on repeated API requests using unique node values, monitoring and rate limiting management API activity can reduce exposure.