Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain RabbitMQ administrator tag
-
DeliveryConfirm rabbitmq_tracing plugin enabled
-
ExploitPUT /api/traces/:vhost/:name with traversal in name
-
ExecutionWrite arbitrary .log file as rabbitmq user
-
ImpactOverwrite files or drop /etc/cron.d/x.log for RCE
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Three concrete preconditions must all hold: (1) the rabbitmq_tracing plugin must be enabled (not enabled by default); (2) the attacker must possess the RabbitMQ administrator tag, which the PUT /api/traces/:vhost/:name endpoint explicitly requires; and (3) the target filesystem path must already be writable by the rabbitmq OS user. Exploitation is further limited by the forced '.log' filename suffix, which constrains which files can be overwritten and makes RCE (e.g. via /etc/cron.d/) opportunistic rather than guaranteed. These factors - high privilege plus a permissive filesystem layout - make realistic exploitation an insider/post-compromise scenario rather than a broadly reachable remote flaw. |
| Impact | This is a genuinely low-priority issue despite the RCE potential, and the signals are internally consistent. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:H/UI:N/VC:N/VI:L/VA:N, base 2.1) tells the real story: exploitation requires PR:H (the endpoint explicitly requires the administrator tag) plus AT:P (a specific attack requirement - the target path must already be writable by the rabbitmq OS user), and impact is capped at VI:L (integrity only, no confidentiality or availability). An attacker who already holds the RabbitMQ administrator tag is a highly privileged insider whose ability to write a .log file to disk is a modest incremental gain over their existing broker-wide control. No EPSS score, no CISA KEV listing, and no public exploit are present in the input, so exploitation status is 'no public exploit identified at time of analysis.' The one point where raw impact could be understated is the /etc/cron.d/x.log RCE avenue - but the vendor deliberately rated integrity as Low because the forced '.log' suffix and the requirement that the path already be writable by an unprivileged rabbitmq user sharply constrain practical code execution. Net: high nominal severity ceiling but low real-world risk, gated behind administrator privileges and a permissive filesystem precondition. |
| Exploit ScenarioDerived | An attacker who has obtained (or been legitimately granted and then abused) the RabbitMQ administrator tag on a node where the rabbitmq_tracing plugin is enabled sends PUT /api/traces/:vhost/:name with a traversal payload in the name parameter. Because the write path applies no safe_relative_path check, the plugin writes a '.log'-suffixed file to an arbitrary location writable by the rabbitmq OS user - for example overwriting a config-adjacent .log file, or dropping /etc/cron.d/x.log for code execution if that directory happens to be writable. No public exploit code is identified at time of analysis, and the fix (safe_relative_path on the write side) is already released. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Path traversal in the RabbitMQ tracing plugin lets a user holding the administrator tag write a file to an arbitrary filesystem location writable by the rabbitmq OS user, because the trace consumer builds its output path as filename:join(TraceDir, Name ++ ".log") from the unvalidated Name parameter of PUT /api/traces/:vhost/:name. Exploitation is an authenticated, administrator-only operation (CVSS vector PR:H) and requires that the rabbitmq_tracing plugin is explicitly enabled and that the target directory is already writable by the broker's OS account, so the realistic scenario is insider or post-compromise abuse rather than an externally reachable flaw. Impact is limited to integrity of local files (I:L, C:N/A:N) and is further constrained by the mandatory .log suffix, which restricts writes to .log-suffixed targets and makes any escalation to code execution opportunistic; no public exploit identified at time of analysis, and the issue is rated 2.1 (CVSS 4.0), consistent with a low-priority, high-privilege finding. Fixed versions are 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.1.
RemediationAI
Primary fix: upgrade to a patched release, specifically RabbitMQ 3.13.15, 4.0.20, 4.1.11, 4.2.6, or 4.3.1 depending on the maintenance line in use (vendor-released patch versions, per GHSA-h7cq-qrr8-7vgc and the 4.2.6 / 4.3.1 release notes at https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.2.6 and https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.3.1); note that nodes will fail to start on Erlang/OTP versions below the supported compatibility matrix for the chosen RabbitMQ line, so validate the Erlang level before upgrading. Where immediate upgrade is not possible, the most effective compensating control is to disable the rabbitmq_tracing plugin (rabbitmq-plugins disable rabbitmq_tracing) and restart the node - the trade-off is the complete loss of trace-file capability for troubleshooting; if tracing must remain enabled, restrict who holds the administrator tag, since the PUT /api/traces endpoint requires it and the flaw is only reachable by that privileged group. Additionally, harden the filesystem layout: run the rabbitmq OS user with write access confined to its own data/log directories only, mount those paths from dedicated volumes, and run the broker in a container with read-only root filesystem so that paths such as /etc/cron.d are not writable - the trade-off is that any legitimate plugin or log destination outside the broker's own directories must be explicitly re-permitted. Because the code forces a .log suffix, detection should focus on unexpected or newly created .log files outside the trace directory (for example under /etc/cron.d, /etc/cron.daily, or other writable application directories) and on audit-log entries for PUT /api/traces/:vhost/:name calls from administrator users; any escalation to code execution depends on the host executing dotted filenames in those directories and is therefore opportunistic rather than assured, but file overwrite of existing .log files remains a tangible integrity impact.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 5 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
RabbitMQ is an Erlang/OTP-based messaging and streaming broker; the vulnerability lives in the optional rabbitmq_tracing plugin, which records message traces to files under a configured TraceDir. The write path is constructed by the trace consumer as filename:join(TraceDir, Name ++ ".log"), where Name is attacker-controlled through the management HTTP API route PUT /api/traces/:vhost/:name. Because filename:join/2 in Erlang does not sanitize '..' components or absolute segments supplied by the caller, the resulting path can escape TraceDir. The root cause class is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal), and the omission is clearly an oversight rather than intentional design: the read-side module rabbit_tracing_files.erl does apply rabbit_misc:safe_relative_path/1 before touching trace files, while the write side applies no equivalent validation. Two developer-enforced constraints bound the attack surface: the endpoint requires the RabbitMQ administrator tag, and the code forcibly appends the ".log" extension, so an attacker cannot choose an arbitrary filename or extension and can only create or overwrite files ending in .log that the rabbitmq OS user can write. Affected CPE data identifies the RabbitMQ Server product line as a whole (cpe:2.3:a:rabbitmq:rabbitmq-server:*:*:*:*:*:*:*:*), with all releases before the five fixed versions carrying the defect.
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:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Endpoint requires the administrator tag (PR:H) and is network-reachable over the management API (AV:N/AC:L); impact is a constrained arbitrary .log write, so integrity-only I:L with no confidentiality or availability.
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, and 4.3.1, The trace consumer constructs the output path as filename:join(TraceDir, Name ++ ".log") where Name comes from PUT /api/traces/:vhost/:name. No safe_relative_path / traversal check is applied on the write side, while the read side (rabbit_tracing_files.erl) does call rabbit_misc:safe_relative_path/1 , proving the omission is an oversight, not design. The .log suffix is forced and the endpoint requires administrator. A user with the administrator tag can write a .log-suffixed file to an arbitrary filesystem path writable by the rabbitmq user via the tracing plugin's name parameter, e.g. /etc/cron.d/x.log (if writable) or overwrite existing .log files outside the trace directory. Preconditions include rabbitmq_tracing plugin enabled administrator tag Target path writable by rabbitmq OS user. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.1.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
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
EUVD-2026-85629
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB