Skip to main content

RabbitMQ Java Client CVE-2026-63337

| EUVDEUVD-2026-61043 HIGH
Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') (CWE-470)
2026-08-18 GitHub_M GHSA-6g32-pxv4-2wfj
7.5
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain co-tenant access or MITM position on broker
  2. Delivery
    Intercept victim's system.describe request
  3. Exploit
    Respond with crafted javaReturnType naming classpath gadget
  4. Execution
    Victim JVM executes Class.forName() with attacker input
  5. Persist
    Static initializer of targeted class runs in victim process
  6. Impact
    type confusion via mapper.parse enables secondary data manipulation

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
Exploitation Conditions

Exploitation requires the attacker to control or intercept the system.describe response returned to a JsonRpcClient during its initialization phase. Two concrete paths satisfy this: (1) the attacker operates a service registered on the same RabbitMQ broker and exchange as the victim - plausible in multi-tenant or shared-infrastructure deployments; or (2) the attacker performs a man-in-the-middle attack on the network path between the client and broker, which requires either absence of TLS or failure to validate the broker's certificate. The victim application must specifically use com.rabbitmq.tools.jsonrpc.JsonRpcClient - the vulnerability does not affect applications using only the core AMQP Channel/Connection API. The attacker cannot introduce new classes; they can only trigger static initializers of classes already present on the victim's classpath, meaning gadget availability is an implicit precondition. The CVSS 4.0 PR:L metric indicates some level of broker access privilege is assumed for the attacker. Exploitation is limited to JVM-based applications running amqp-client versions prior to 5.33.0 with the JSON-RPC feature in active use.

Impact

The CVSS 4.0 score of 7.5 (AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L) reflects serious CIA impact on the client process moderated by specific attack requirements (AT:P) and the need for low-privilege broker access (PR:L). The AT:P condition is the decisive real-world gating factor: exploitation is confined to attackers who either share a RabbitMQ broker with the victim or can intercept unencrypted AMQP traffic, neither of which is trivially achieved in TLS-protected, well-segmented deployments. The technique itself - arbitrary Class.forName() with static initializer execution - is conceptually mature in the Java security community and does not require novel exploit development, increasing concern for motivated attackers in susceptible environments. The absence of CISA KEV listing and public POC code suggests exploitation remains opportunistic or unreported rather than widespread. The vulnerability is scoped to applications specifically using JsonRpcClient, not all RabbitMQ Java client users, which materially reduces the exposed population. Priority should be highest for deployments using shared or multi-tenant brokers without TLS mutual authentication.

Exploit ScenarioDerived

An attacker with co-tenant access on a shared RabbitMQ broker deploys a malicious JSON-RPC service on the same exchange targeted by the victim application. When the victim's JsonRpcClient initializes and issues its system.describe call, the attacker's service responds with a crafted javaReturnType value naming a class already on the victim JVM's classpath that contains a dangerous static initializer - for example, a class that opens an outbound connection, executes a subprocess, or leaks credentials upon load. The victim JVM immediately executes that static initializer via Class.forName(), achieving attacker-directed code execution within the client process without any additional steps.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 18, 2026

Unvalidated Class.forName() with initialization enabled in RabbitMQ Java Client's JSON-RPC tooling allows a network-positioned attacker to trigger arbitrary static initializers in the victim JVM. Applications using com.rabbitmq:amqp-client before 5.33.0 that employ the JsonRpcClient class are exposed when an attacker can control or spoof the system.describe broker response - either as a co-tenant on a shared broker or via network interception. Successful exploitation achieves code-like effects through static initializer execution and a secondary type-confusion path via mapper.parse, with full confidentiality, integrity, and availability impact on the client process. No public exploit identified at time of analysis, and this CVE is not listed in CISA KEV.

RemediationAI

Upgrade to com.rabbitmq:amqp-client version 5.33.0, which is the vendor-released patch. The fix introduces a static SAFE_RETURN_TYPES allowlist covering primitives, String, Map, List, and common boxed types; any class name received from the remote service description that is not in this allowlist causes construction to fail with an IllegalStateException rather than reflectively loading the class. Applications legitimately requiring custom return types must use the new JsonRpcClient(RpcClientParams, JsonRpcMapper, Set<Class<?>>) constructor to pass an explicit allowlist. The release is documented at https://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.33.0 with fix commits at https://github.com/rabbitmq/rabbitmq-java-client/commit/0032f75f9dc3df847f94b2b85a16119250bf63cb and https://github.com/rabbitmq/rabbitmq-java-client/commit/9f8e7efd0c648f235dc0e96232ae7efa75ea4fa8. If immediate patching is not feasible, enforce TLS with server certificate validation on all AMQP connections to eliminate the MITM interception path, and ensure the RabbitMQ broker is not shared with untrusted co-tenants. As a more aggressive workaround, replacing JsonRpcClient usage with standard AMQP messaging patterns eliminates the attack surface entirely, though this requires application-level refactoring.

Affected VersionsENISA

rabbitmq-java-client < 5.33.0

Affected Packages

maven com.rabbitmq:amqp-client fix: 5.33.0
euvd rabbitmq_java_client fix: 5.33.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in maven, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

CWE-470 (Use of Externally-Controlled Input to Select Classes or Code) is the root cause. During JsonRpcClient initialization, the client issues a system.describe RPC call and receives a service description from the AMQP queue. The response JSON contains javaReturnType fields which are reflectively applied via JSONUtil.tryFill() → setJavaReturnType() → computeReturnTypeAsJavaClass() → Class.forName(javaReturnType, initialize=true, classLoader). In Java, Class.forName() with initialization enabled unconditionally executes the target class's static initializer block - a well-understood vector in the Java deserialization-gadget ecosystem. A secondary attack surface exists at JsonRpcClient.java:168 where the loaded class from getReturnType() is passed to mapper.parse(replyStr, expectedType), enabling type confusion. The affected Maven coordinate is com.rabbitmq:amqp-client and the CPE is cpe:2.3:a:rabbitmq:rabbitmq-java-client:*:*:*:*:*:*:*:*. The flaw exists only in the com.rabbitmq.tools.jsonrpc package, not in the core AMQP messaging API.

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

Vendor (GitHub_M) PRIMARY 7.5 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L
vuln.today AI 7.1 HIGH

Broker co-tenancy or MITM interception required for exploitation raises AC:H; low broker-access privilege needed (PR:L); victim must invoke JsonRpcClient (UI:R); full CIA impact confined to client process (S:U).

3.1 AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 8.8 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
Low

Lifecycle Timeline

2
Patch available
Aug 18, 2026 - 17:17 EUVD
CVE Published
Aug 18, 2026 - 16:27 cve.org
HIGH 7.5

DescriptionCVE.org

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.0, com.rabbitmq.tools.jsonrpc.ProcedureDescription receives a javaReturnType value in an untrusted system.describe response and passes it through JSONUtil.tryFill, setJavaReturnType, and computeReturnTypeAsJavaClass to Class.forName(javaReturnType) with initialization enabled. An attacker able to answer the JsonRpcClient request through a shared broker or network interception can select a class already present in the victim JVM and trigger its static initializer, while JsonRpcClient.java later passes getReturnType output to mapper.parse and may also create type confusion. Successful exploitation can affect confidentiality, integrity, and availability in the client process. This issue is fixed in version 5.33.0.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 maven packages depend on com.rabbitmq:amqp-client (3 direct, 1 indirect)

Ecosystem-wide dependent count for version 5.33.0.

Executive ViewAI

Why It Matters

The RabbitMQ Java Client library (amqp-client versions before 5.33.0) contains a critical vulnerability that allows attackers to execute malicious code when applications use the JsonRpcClient component. An attacker positioned on the network or as a co-tenant on shared broker infrastructure can exploit this by intercepting or spoofing broker communications, potentially compromising the confidentiality, integrity, and availability of the application and its data. Organizations using this library must immediately identify affected systems and implement protective controls.

Business Impact: High
Compensating Controls

Implement network segmentation to isolate affected applications on dedicated broker instances or separate network segments to prevent attacker positioning; deploy network-level monitoring and authentication controls on broker communication channels to detect and prevent broker response spoofing; disable or remove JsonRpcClient functionality from applications if it is not actively required; restrict access to shared broker infrastructure to limit co-tenancy exploitation vectors.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Medium
widely-used Java messaging library, but JSON-RPC feature is niche
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-57219 HIGH POC
8.7 Jul 10

Sensitive credential disclosure in RabbitMQ affects installations running the management plugin with OAuth 2 configured

CVE-2019-11287 HIGH POC
7.5 Nov 23

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

CVE-2026-63335 MEDIUM POC
6.3 Aug 18

Denial of service in the RabbitMQ Java client library (com.rabbitmq:amqp-client ≤ 5.30.0) allows a malicious or compromi

CVE-2016-9877 CRITICAL
9.8 Dec 29

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.

CVE-2026-77411 CRITICAL
9.5 Sep 16

Parsing desynchronization in the RabbitMQ amqp091-go AMQP 0.9.1 client library before 1.13.0 lets a malicious or comprom

CVE-2026-77405 CRITICAL
9.4 Sep 16

RabbitMQ's amqp091-go Go client library, in all versions before 1.13.0, builds TLS configuration from amqps:// URIs with

CVE-2021-32718 MEDIUM POC
5.4 Jun 28

RabbitMQ is a multi-protocol messaging broker. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploita

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-77408 CRITICAL
9.1 Sep 16

Silent AMQP 0.9.1 metadata corruption in the RabbitMQ amqp091-go Go client library prior to 1.13.0 lets an application t

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-63336 MEDIUM POC
5.1 Aug 18

TLS certificate validation is completely bypassed in the RabbitMQ Java client library (`com.rabbitmq:amqp-client`) prior

CVE-2026-77412 HIGH
8.9 Sep 16

Denial of service in the official RabbitMQ Go client library amqp091-go (versions prior to 1.13.0): a malicious, comprom

Vendor StatusVendor

SUSE

Severity: Moderate

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy