Description
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.
Published: 2026-08-18
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from the RabbitMQ Java client’s handling of the javaReturnType field in the JSON‑RPC ProcedureDescription response. The untrusted value is passed directly to Class.forName with initialization enabled, allowing an attacker to load any class that exists in the target JVM. If the chosen class contains a static initializer that performs privileged operations, that code will execute within the client process. This can compromise confidentiality, integrity, and availability by enabling arbitrary code execution in the context of the application using the client.

Affected Systems

All versions of the rabbitmq‑java‑client before 5.33.0 are affected. The issue applies to any Java or JVM‑based application that imports the library to connect to RabbitMQ, regardless of the application’s size or function.

Risk and Exploitability

The CVSS score is 7.5, indicating a high severity. EPSS is not available, and the vulnerability is not currently listed in CISA’s KEV catalog, implying that no widespread exploitation is known yet. The most likely attack vector is a scenario where the attacker can influence the response to a JsonRpcClient request through a shared broker or by intercepting traffic—typical of network‑level or broker‑level compromise. Under those conditions, the attacker can pick an arbitrary class present on the JVM and trigger its static initializers, thereby executing code in the client process. The impact is remote code execution with the same privileges as the Java process, which can potentially lead to full compromise of the client machine.

Generated by OpenCVE AI on August 18, 2026 at 17:17 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the RabbitMQ Java client library to version 5.33.0 or newer, which removes the unsafe Class.forName call.
  • Audit the application's dependency tree to ensure no older rabbitmq‑java‑client version remains transitively, and replace any such references.
  • As a temporary countermeasure, restrict the client’s ability to receive untrusted JSON‑RPC responses, for example by enforcing TLS or by configuring the broker to disallow shared access to untrusted clients.

Generated by OpenCVE AI on August 18, 2026 at 17:17 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6g32-pxv4-2wfj RabbitMQ Java client: Unvalidated Class.forName in JSON-RPC ProcedureDescription enables arbitrary class loading
History

Tue, 18 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Description 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.
Title RabbitMQ Java client: Unvalidated Class.forName in JSON-RPC ProcedureDescription enables arbitrary class loading
Weaknesses CWE-470
References
Metrics cvssV4_0

{'score': 7.5, 'vector': '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-18T19:09:03.371Z

Reserved: 2026-07-16T14:14:24.385Z

Link: CVE-2026-63337

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-18T17:17:00.423

Modified: 2026-08-18T17:17:00.423

Link: CVE-2026-63337

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T17:30:15Z

Weaknesses
  • CWE-470

    Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')