
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-67419 is a Denial of Service vulnerability in RabbitMQ's topic exchange routing engine, caused by inefficient algorithmic complexity in the trie-based topic matcher. An authenticated user who can bind a queue to a topic exchange and publish to it can craft binding keys with consecutive # wildcard segments to trigger combinatorial CPU and memory exhaustion, disrupting message routing for all tenants on the broker. The vulnerability affects RabbitMQ server versions >= 4.3.0 and < 4.3.5, and was disclosed on August 18, 2026, with a fix released in version 4.3.5. It carries a CVSS v4.0 base score of 7.1 (High) (GitHub Advisory).
The root cause is classified as CWE-407 (Inefficient Algorithmic Complexity) and CWE-1333 (Inefficient Regular Expression Complexity). The validate_binding/2 function in rabbit_exchange_type_topic.erl unconditionally returns ok without validating binding keys, allowing consecutive # segments (e.g., #.#.#.#) to be registered. When a message is published with a matching routing key, the trie_match/7 (or legacy trie_match_v3/5) function recursively explores literal, *, and # branches without memoizing visited {trie node, remaining routing-key suffix} states, causing the same state to be reached via exponentially many distinct call paths. The number of duplicate matcher invocations follows a central binomial recurrence — for n=16 consecutive # segments matched against a 16-word routing key, this yields approximately 1.16 billion recursive calls and a 300-million-element intermediate result list, all materialized inline in the routing process before deduplication occurs (GitHub Advisory, Fix Commit).
Successful exploitation allows a single low-privileged tenant to monopolize Erlang scheduler CPU for the full duration of a routing traversal, degrading or halting message routing for all vhosts and clients on the shared broker node. The routing process heap grows with the fully materialized duplicate destination list before deduplication, contributing significant memory pressure. Critically, no existing safeguard — including connection limits, channel limits, queue limits, max_message_size, or memory alarms — can interrupt a single in-progress match/3 traversal, meaning the attack is effective with a single message and requires no fan-out or repetition. There is no confidentiality or integrity impact; the attack is purely an availability disruption (GitHub Advisory).
A proof-of-concept exploit is publicly available in the GitHub Security Advisory, providing step-by-step reproduction instructions using rabbitmqadmin commands with specific consecutive # binding keys and matching routing keys (GitHub Advisory). Exploitation requires authentication and standard tenant-level permissions (configure on a queue, read/write on a topic exchange) — no administrator or non-default configuration is needed. The EPSS score is 0.0033, and there is no evidence of in-the-wild exploitation or CISA KEV catalog listing as of the time of this report. The vulnerability is not automatable per NVD SSVC assessment, as valid credentials are required.
rabbitmqadmin can be used.evilx) using rabbitmqadmin declare exchange name=evilx type=topic. This requires read permission on the exchange resource.evilq) using rabbitmqadmin declare queue name=evilq. This requires configure permission on the queue.# binding key of depth n (e.g., #.#.#.#.#.#.#.#.#.#.#.# for n=12): rabbitmqadmin declare binding source=evilx destination=evilq routing_key="#.#.#.#.#.#.#.#.#.#.#.#". The broker accepts this key because validate_binding/2 performs no validation.a.a.a.a.a.a.a.a.a.a.a.a for n=12): rabbitmqadmin publish exchange=evilx routing_key="a.a.a.a.a.a.a.a.a.a.a.a" payload="". This triggers the non-memoized recursive matcher.n toward the ~127-segment AMQP limit makes the attack effectively unbounded. The queue receives exactly one message, confirming all extra work is wasted (GitHub Advisory).queue.bind frames declaring binding keys containing three or more consecutive # segments (e.g., #.#.# or longer) on topic exchanges; AMQP basic.publish frames to topic exchanges with routing keys of matching depth shortly after such bindings are created.match/3 call; unusually large heap size for the routing process observable via rabbitmqctl eval 'erlang:process_info(self(), memory).'; broker-wide message routing latency spike following a single publish event.# wildcards in the binding key, detectable via rabbitmqctl list_bindings or the management API (GET /api/bindings).Upgrade RabbitMQ to version 4.3.5 or later, which introduces two fixes: (1) validate_binding/2 now rejects binding keys containing more than two # wildcard segments with an AMQP 406 error, and (2) trie_match/7 adds memoization of {trie node, remaining routing-key} states when two or more # edges have been traversed, collapsing the combinatorial recurrence to polynomial cost (RabbitMQ 4.3.5 Release, Fix Commit). There is no effective configuration-level workaround — any account able to bind and publish on a topic exchange can trigger the behavior, and no setting bounds per-routing work or rejects consecutive-# binding keys in unpatched versions. As an interim measure, restrict queue binding and publishing permissions to trusted users only, and audit existing topic exchange bindings for consecutive # patterns (GitHub Advisory).
Fix availability across major Linux distributions and their releases.
bionic (esm-infra)
rabbitmq-server
devel
rabbitmq-server
focal (esm-infra)
rabbitmq-server
jammy
rabbitmq-server
noble
rabbitmq-server
resolute
rabbitmq-server
xenial (esm-infra-legacy)
rabbitmq-server
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."