Description
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.0, add_binding/3 parses the routing key as an integer weight N and computes ring positions with lists:seq(NextN0, NextN0 + N - 1). validate_binding/2 only checks N >= 1 , no upper bound. The resulting list is stored in the exchange's Khepri record, replicated cluster-wide, and reloaded on restart. A user with write permission on a consistent-hash exchange and read on a queue can create a binding whose routing key (the hash-ring weight) is an arbitrarily large integer. The broker allocates a list of that many integers via lists:seq/2 and persists it to Khepri across all cluster nodes , a single binding with weight 100000000 allocates ~800 MB on every node and survives restarts. Preconditions include rabbitmq_consistent_hash_exchange plugin enabled write permission on a consistent-hash exchange + read on a queue (standard binding perms). This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.0.
Published: 2026-09-23
Score: 6 Medium
EPSS: n/a
KEV: No
Impact: Memory exhaustion leading to denial of service in RabbitMQ consistent-hash exchanges.
Action: Apply Patch
AI Analysis

Impact

The vulnerability allows a user with write permissions on a consistent‑hash exchange and read access to a queue to set an arbitrarily large routing‑key weight when adding a binding. The broker accepts any positive integer weight without an upper bound, allocating a list of that many integer positions in memory. A binding weight of 100,000,000 can consume roughly 800 MB per node and survives restarts, leading to memory exhaustion and potential denial of service. This flaw falls under CWE‑770, where insufficient checks on resource usage can degrade availability.

Affected Systems

Affected are RabbitMQ Server instances running any version earlier than 3.13.15, 4.0.20, 4.1.11, 4.2.6, or 4.3.0. All deployments that enable the rabbitmq_consistent_hash_exchange plugin and grant a user write permission on a consistent‑hash exchange plus read permission on a queue are vulnerable. The issue is resolved in the aforementioned versions and all subsequent releases.

Risk and Exploitability

The CVSS score of 6.0 indicates moderate severity. The EPSS score is unavailable, and the vulnerability is not listed in CISA’s KEV catalog. Exploitation requires that the attacker can create or modify a binding on a consistent‑hash exchange, which can be done via the AMQP protocol or the HTTP management API if the user has the necessary permissions. The lack of an upper bound on the weight argument allows the attacker to cause significant memory usage and interrupt message routing, potentially leading to service disruption in a single node or cluster-wide if the binding is replicated.

Generated by OpenCVE AI on September 23, 2026 at 21:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the RabbitMQ Server to 3.13.15, 4.0.20, 4.1.11, 4.2.6, 4.3.0, or later.
  • If an upgrade cannot be performed immediately, disable the rabbitmq_consistent_hash_exchange plugin for users that only need read access or limit their binding permissions.
  • Identify and delete any existing bindings that use an excessively large weight, and re‑create them with a weight value that falls within a reasonable range.
  • Enable monitoring of cluster memory usage, and set alerts for unusually high memory consumption that may indicate a large binding weight has been created.

Generated by OpenCVE AI on September 23, 2026 at 21:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 23 Sep 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Rabbitmq
Rabbitmq rabbitmq-server
Vendors & Products Rabbitmq
Rabbitmq rabbitmq-server

Wed, 23 Sep 2026 20:45:00 +0000

Type Values Removed Values Added
Description 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.0, add_binding/3 parses the routing key as an integer weight N and computes ring positions with lists:seq(NextN0, NextN0 + N - 1). validate_binding/2 only checks N >= 1 , no upper bound. The resulting list is stored in the exchange's Khepri record, replicated cluster-wide, and reloaded on restart. A user with write permission on a consistent-hash exchange and read on a queue can create a binding whose routing key (the hash-ring weight) is an arbitrarily large integer. The broker allocates a list of that many integers via lists:seq/2 and persists it to Khepri across all cluster nodes , a single binding with weight 100000000 allocates ~800 MB on every node and survives restarts. Preconditions include rabbitmq_consistent_hash_exchange plugin enabled write permission on a consistent-hash exchange + read on a queue (standard binding perms). This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.0.
Title RabbitMQ: Consistent-hash exchange unbounded weight
Weaknesses CWE-770
References
Metrics cvssV4_0

{'score': 6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Rabbitmq Rabbitmq-server
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-23T20:38:42.653Z

Reserved: 2026-07-28T19:50:39.437Z

Link: CVE-2026-67219

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-23T21:17:00.073

Modified: 2026-09-23T21:17:00.073

Link: CVE-2026-67219

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-23T21:30:07Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling