Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv AMQP user on one vhost
-
DeliveryConnect with raw AMQP client (bypass JMS client)
-
ExploitBind on x-jms-topic exchange with long rjms_erlang_selector
-
Executionerl_scan interns atoms with no length cap
-
PersistRepeat <100 binds to exhaust atom table
-
ImpactBroker node crashes, cross-tenant DoS
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires: (1) the rabbitmq_jms_topic_exchange plugin enabled - bundled with RabbitMQ and required for any JMS deployment, so present in JMS shops but not in brokers that do not use JMS (this is the AT:P attack requirement); (2) an authenticated AMQP user (PR:L) with read permission on an x-jms-topic exchange plus write permission on a queue, or configure permission to declare both; (3) use of a raw/arbitrary AMQP client rather than the Java JMS client, since the server does not enforce the client-side selector compilation. No end-user interaction is needed (UI:N) and the vector is network-reachable (AV:N). The main limiting factors are the plugin-enabled precondition and the authentication requirement - this is not exploitable against a default broker with the JMS plugin disabled, nor by an unauthenticated attacker. |
| Impact | This is a genuine but moderate-priority availability issue, not an overhyped high-CVSS case. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H, base 6.0) correctly isolates the impact to availability only - there is no confidentiality or integrity loss, and no scope change to a subsequent system (SC/SI/SA:N). The 'real' risk hinges on three factors that pull in different directions: (1) exploitation is cheap and reliable - an authenticated low-privilege AMQP user confined to a single vhost can crash the entire Erlang VM node in fewer than 100 bind calls, and because atoms are never garbage-collected the effect is a permanent, non-recoverable resource-exhaustion crash affecting ALL tenants/vhosts on that node (cross-tenant blast radius); (2) it requires authentication (PR:L) plus the rabbitmq_jms_topic_exchange plugin being enabled, captured as AT:P (attack requirement present); (3) there is no CISA KEV listing, no public exploit code, and no EPSS score supplied, so there is no signal of active or widespread exploitation. Net: prioritize patching where the JMS topic exchange plugin is in use and multi-tenant brokers are shared, but this is a privileged-insider/compromised-credential DoS rather than an unauthenticated internet-facing critical. The AT:P condition (plugin enabled) is the main real-world limiter; the description notes the plugin is bundled and required for any JMS deployment, so it is present in JMS shops but absent in brokers that do not use JMS. |
| Exploit ScenarioDerived | An attacker with valid low-privilege AMQP credentials for one vhost (e.g., a compromised application account) connects with a raw AMQP client rather than the Java JMS client, bypassing the client-side selector compilation. They repeatedly create bindings on an x-jms-topic exchange, each carrying a long, unique rjms_erlang_selector string that erl_scan:string/1 tokenizes and permanently interns as new atoms; in under 100 such bind calls the Erlang atom table is exhausted and the entire broker node crashes, denying service to every tenant on it. No public exploit code is identified at time of analysis, but the mechanism is fully described in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Atom-table exhaustion in RabbitMQ's x-jms-topic exchange lets an authenticated low-privilege AMQP user crash an entire broker node in fewer than 100 binding declarations, turning a vhost-confined account into a cross-tenant denial of service. The flaw is reachable only when the bundled rabbitmq_jms_topic_exchange plugin is enabled - standard in any JMS deployment - and the attacker holds read permission on an x-jms-topic exchange plus write permission on a queue, or configure rights to declare both; it also requires a raw AMQP client, because the broker does not enforce the client-side selector compilation that the Java JMS client performs. Fixed in RabbitMQ 3.13.15, 4.0.20, 4.1.11, 4.2.6 and 4.3.0; no public exploit identified at time of analysis and no CISA KEV listing, though the attack needs no user interaction and is network-reachable, with an assessed CVSS 3.1 score of AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H.
RemediationAI
Vendor-released patch: upgrade to RabbitMQ 3.13.15, 4.0.20, 4.1.11, 4.2.6 or 4.3.0, per the advisory at https://github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-r3qr-4h63-mvj2. If an immediate upgrade is not possible and JMS topic exchanges are not in use, disable the rabbitmq_jms_topic_exchange plugin (rabbitmq-plugins disable rabbitmq_jms_topic_exchange followed by a node restart) - this removes the vulnerable code path entirely, but as a hard trade-off it breaks every JMS-based producer and consumer relying on x-jms-topic exchanges, so validate JMS dependencies first. As a compensating control for environments that must keep JMS, tighten AMQP permissions so that non-administrative users have neither read access on x-jms-topic exchanges nor configure rights on the vhosts where those exchanges exist; this blocks the raw-AMQP selector injection path without taking the plugin down, at the cost of restricting legitimate topology-management workflows and requiring a permissions audit of existing accounts. Raising the Erlang atom table size via the +t emulator flag only postpones exhaustion rather than preventing it, since interned atoms are never reclaimed, and it increases baseline memory usage - treat it as a stopgap at best. Because atom exhaustion is irreversible per node, plan for a broker restart if a node is suspected of being targeted, and monitor atom counts and unexpected binding churn on x-jms-topic exchanges as a detection signal.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the rabbitmq_jms_topic_exchange plugin, which implements a JMS-style topic exchange (x-jms-topic) on top of RabbitMQ's AMQP 0-9-1 broker, itself an Erlang/OTP application. When a binding is declared on such an exchange, the server-side add_binding/3 handler reads the rjms_erlang_selector argument and feeds it to erl_scan:string/1 followed by erl_parse:parse_term/1. erl_scan:string/1 interns every atom literal it tokenizes into the Erlang VM atom table, and Erlang atoms are permanent - they are never garbage collected and the table has a fixed default ceiling (roughly one million entries). Because validate_binding/2 is implemented as a no-op returning ok, there is no length cap, no whitelist of allowed selector terms, and the surrounding try/catch can only catch errors, not reclaim the atoms already interned. This is the CWE-400 (uncontrolled resource consumption) class: each crafted selector permanently consumes VM-global memory, so repeated bindings drive the node toward atom-table exhaustion and a VM-level crash. The design assumes selectors are compiled client-side - true for the Java JMS client - but a raw AMQP client can submit arbitrary selector strings directly, which the broker accepts. The CVSS 4.0 vector records AT:P because the JMS plugin must be present and enabled, and PR:L because an authenticated account is required; the impact is purely availability (VA:H) with no confidentiality or integrity loss.
Know when Rabbitmq gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Network-reachable, low-complexity binding calls by a low-privileged authenticated AMQP user; availability-only node crash, no confidentiality/integrity impact; scope kept S:U as the broker node is the single affected security authority.
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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, add_binding/3 reads the rjms_erlang_selector argument and passes it through erl_scan:string/1 then erl_parse:parse_term/1. erl_scan:string/1 interns every atom literal it tokenizes. validate_binding/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 rabbitmq_jms_topic_exchange 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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Sensitive credential disclosure in RabbitMQ affects installations running the management plugin with OAuth 2 configured
Pivotal RabbitMQ, versions 3.7.x prior to 3.7.21 and 3.8.x prior to 3.8.1, and RabbitMQ for Pivotal Platform, 1.16.x ver
Denial of service in the RabbitMQ Java client library (com.rabbitmq:amqp-client ≤ 5.30.0) allows a malicious or compromi
An issue was discovered in Pivotal RabbitMQ 3.x before 3.5.8 and 3.6.x before 3.6.6 and RabbitMQ for PCF 1.5.x before 1.
Parsing desynchronization in the RabbitMQ amqp091-go AMQP 0.9.1 client library before 1.13.0 lets a malicious or comprom
RabbitMQ's amqp091-go Go client library, in all versions before 1.13.0, builds TLS configuration from amqps:// URIs with
RabbitMQ is a multi-protocol messaging broker. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploita
RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b
Silent AMQP 0.9.1 metadata corruption in the RabbitMQ amqp091-go Go client library prior to 1.13.0 lets an application t
TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged
TLS certificate validation is completely bypassed in the RabbitMQ Java client library (`com.rabbitmq:amqp-client`) prior
Denial of service in the official RabbitMQ Go client library amqp091-go (versions prior to 1.13.0): a malicious, comprom
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Proxy LTS 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Manager Server LTS 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
| openSUSE Leap 15.6 | Affected |
| SUSE Linux Enterprise Server for NVIDIA 16.1 | Affected |
EUVD-2026-85630
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB