Description
RabbitMQ is a messaging and streaming broker. Prior to versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6, The management UI uses EJS 1.0 in which <%= ... %> does NOT HTML-escape. connection.ejs:135 renders <%= connection.ssl_details.peer_cert_subject %> (and peer_cert_issuer) directly into the page. The same pattern appears in streamConnection.ejs:102,106,110. The values come from rabbit_ssl:peer_cert_subject/1 which formats the DN as a string without HTML escaping. The verifier corrected the original researcher's claim: this is reachable only when the listener is configured with verify_peer (so the certificate must be signed by a CA in the broker's trust store, not arbitrary self-signed); however, in deployments using mTLS for client authentication, any user who can request a certificate from the organisational CA controls the Subject CN. An attacker who can obtain a TLS client certificate signed by a CA the broker trusts (with verify_peer enabled) can embed JavaScript in the certificate's Subject DN. When any administrator views that connection in the management UI, the script executes in the admin's browser session, allowing full account takeover (create users, export definitions, etc.). The management UI's CSP includes 'unsafe-inline', so inline script execution is not blocked. Preconditions include TLS listener configured with ssl_options.verify = verify_peer Attacker can obtain a CA-signed client certificate with attacker-chosen Subject (e.g. self-service corporate PKI, or rabbitmq_trust_store plugin in use) Administrator views the connection detail page. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6.
Published: 2026-09-23
Score: 7.3 High
EPSS: n/a
KEV: No
Impact: Remote Code Execution via Stored XSS
Action: Immediate Patch
AI Analysis

Impact

This vulnerability causes a stored cross‑site scripting flaw in RabbitMQ’s management UI when TLS client certificates are used with verify_peer enabled. The UI renders the certificate’s subject DN without escaping, allowing a maliciously crafted JavaScript payload to be embedded. When an administrator opens the connection detail page, the script runs inside the admin’s browser context, enabling full control over broker accounts and configurations. The weakness is a classic reflected input flaw where untrusted data is displayed without proper filtering. The impact is the compromise of confidentiality, integrity, and availability of the broker, as an attacker can create or delete users, modify routing, and dump sensitive data.

Affected Systems

RabbitMQ server versions earlier than 3.13.15, 4.0.20, 4.1.11, and 4.2.6 are affected. The issue arises when a TLS listener is configured with ssl_options.verify = verify_peer and the broker’s trust store accepts the attacker’s certificate. Any deployment using mTLS for client authentication and exposing the management UI is at risk. The vulnerability is limited to the UI layer and requires an administrator to view the connection details; however, an attacker who controls the subject DN can generate a payload that will execute in the admin’s browser.

Risk and Exploitability

The CVSS base score of 7.3 indicates a high severity. EPSS score is not available, but the vulnerability is not listed in the CISA KEV catalog. The likely attack requires the attacker to obtain a valid TLS client certificate signed by a CA that the broker trusts, which is feasible on enterprises with internal PKI or when misconfigured trust stores are present. Once the certificate is in place, any administrative interaction with the UI leads to script execution, providing local privilege escalation to administrative level within the broker. Given the high impact and realistic exploitation path, the risk is significant when the described conditions exist.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to RabbitMQ 3.13.15, 4.0.20, 4.1.11, or 4.2.6 or later, where the management UI escapes certificate data.
  • Ensure TLS listener is configured with ssl_options.verify = verify_peer and remove any certificates that allow arbitrary subject DN manipulation, e.g., by restricting the trusted CA pool or disabling mTLS completely if not needed.
  • If an immediate upgrade is not possible, restrict management UI access to trusted administrators, enforce strict CSP headers, and monitor for anomalous XSS activity.

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 23 Sep 2026 22:15: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:30: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, and 4.2.6, The management UI uses EJS 1.0 in which <%= ... %> does NOT HTML-escape. connection.ejs:135 renders <%= connection.ssl_details.peer_cert_subject %> (and peer_cert_issuer) directly into the page. The same pattern appears in streamConnection.ejs:102,106,110. The values come from rabbit_ssl:peer_cert_subject/1 which formats the DN as a string without HTML escaping. The verifier corrected the original researcher's claim: this is reachable only when the listener is configured with verify_peer (so the certificate must be signed by a CA in the broker's trust store, not arbitrary self-signed); however, in deployments using mTLS for client authentication, any user who can request a certificate from the organisational CA controls the Subject CN. An attacker who can obtain a TLS client certificate signed by a CA the broker trusts (with verify_peer enabled) can embed JavaScript in the certificate's Subject DN. When any administrator views that connection in the management UI, the script executes in the admin's browser session, allowing full account takeover (create users, export definitions, etc.). The management UI's CSP includes 'unsafe-inline', so inline script execution is not blocked. Preconditions include TLS listener configured with ssl_options.verify = verify_peer Attacker can obtain a CA-signed client certificate with attacker-chosen Subject (e.g. self-service corporate PKI, or rabbitmq_trust_store plugin in use) Administrator views the connection detail page. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, and 4.2.6.
Title RabbitMQ: Stored XSS via TLS peer-certificate DN in management UI
Weaknesses CWE-79
References
Metrics cvssV4_0

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


Subscriptions

Rabbitmq Rabbitmq-server
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-23T20:03:42.797Z

Reserved: 2026-07-23T23:25:28.898Z

Link: CVE-2026-66077

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-23T21:16:59.647

Modified: 2026-09-23T21:16:59.647

Link: CVE-2026-66077

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-23T22:00:14Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')