CVE-2026-106122: RabbitMQ: Malformed UTF-8 in shortstr properties permanently disables RPC consumers
The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.36.0, ValueReader.readShortstr decodes malformed UTF-8 bytes into replacement characters that can re-encode beyond the AMQP shortstr limit enforced by ValueWriter.writeShortstr. An attacker who can submit an RPC message with a malformed echoed property can cause reply publication in RpcServer.mainloop() or tutorial-style consumers to throw an unchecked exception before acknowledgement. The broker requeues the message, allowing the same message to disable replacement consumers until the queue is purged. This issue is fixed in version 5.36.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
RabbitMQ Java client libraryto a version that resolves this vulnerability.Fixed in 5.36.0
Event History
Frequently Asked Questions
Which applications are exposed to this issue?
Java or JVM-based applications using the RabbitMQ Java client before version 5.36.0 are exposed when they use RpcServer.mainloop() or tutorial-style consumers that publish replies using echoed message properties.
What must an attacker be able to do to trigger the denial of service?
The attacker must be able to submit an RPC message containing a malformed UTF-8 value in a property that the consumer echoes into its reply. The malformed value can cause reply publication to throw an unchecked exception before the original message is acknowledged.
Why can the disruption persist after a consumer is replaced or restarted?
Because the failed message is not acknowledged, the broker requeues it. The same message can then trigger the exception again for replacement consumers until the queue is purged.
What is the available remediation?
Upgrade the Maven package com.rabbitmq:amqp-client to version 5.36.0 or later. If an immediate upgrade is not possible and the queue is affected, purging the queue removes the requeued triggering message.