CVE-2026-63337
ADVISORY - githubSummary
The JSON-RPC tools in com.rabbitmq.tools.jsonrpc perform Class.forName(javaReturnType) with initialize=true on class names received from untrusted AMQP messages, without any validation or allowlist.
Vulnerable code (ProcedureDescription.java:101-127):
When a JsonRpcClient connects, it calls system.describe and receives a service description from the AMQP queue. The response JSON includes javaReturnType fields that are reflectively set via JSONUtil.tryFill(), triggering setJavaReturnType() → computeReturnTypeAsJavaClass() → Class.forName(javaReturnType).
Attack scenario:
- Victim uses
JsonRpcClientto connect to a JSON-RPC service via RabbitMQ - Attacker (co-tenant on shared broker, or MITM) intercepts the
system.describerequest - Attacker responds with crafted
javaReturnTypevalues - Victim's client calls
Class.forName(attackerInput)with defaultinitialize=true - Static initializers of attacker-specified classes execute in victim's JVM
Additionally, the loaded class from getReturnType() is passed to mapper.parse(replyStr, expectedType) at JsonRpcClient.java:168, potentially enabling type-confusion.
Recommended fix: Use Class.forName(javaReturnType, false, classLoader) to prevent static initializer execution, or add an allowlist of permitted return types.
CWE: CWE-470
Reply from reporter (2026-06-29): Thanks for the quick turnaround. Fix looks good. Looking forward to the CVE assignment.
NIST
-
CVSS SCORE
7.5highGitHub
-
CVSS SCORE
7.5highDebian
-
Ubuntu
-
CVSS SCORE
N/AmediumChainguard
CGA-f8fr-g9gw-gwrh
-
minimos
MINI-3fwg-j683-4hc8
-
minimos
MINI-3j57-xv6x-cf6w
-
minimos
MINI-872w-m3r3-3h6x
-
minimos
MINI-8xfw-p47x-m7pp
-
minimos
MINI-fm27-fp9v-mmv8
-
minimos
MINI-fwxq-2633-ph9c
-
minimos
MINI-qhxw-28gr-rgmw
-
minimos
MINI-rph3-c436-v4fh
-
minimos
MINI-v5q6-9vh8-fqq2
-