Repository navigation
fix(deps): update dependency com.rabbitmq:amqp-client to v5.37.0 [security] - #212
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/rabbitmq.client.version
branch
from
September 20, 2026 01:01
842d252 to
505c077
Compare
renovate
Bot
force-pushed
the
renovate/rabbitmq.client.version
branch
from
October 17, 2026 15:33
505c077 to
b2153b5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
5.20.0→5.37.0RabbitMQ Java client ValueReader: Unbounded recursive table/array nesting causes StackOverflowError DoS
CVE-2026-69220 / GHSA-93j5-89vc-pph4
More information
Details
Summary
ValueReader.readTable()andreadArray()recursively callreadFieldValue()with no depth limit. A malicious AMQP peer can crash the client JVM by sending a deeply nested table structure.Vulnerable Code
src/main/java/com/rabbitmq/client/impl/ValueReader.javalines 139-155 and 237-249:Attack Scenario
A malicious AMQP server (or MitM) sends a
connection.startframe with ~580 levels of nested tables. Each level costs ~7 bytes (4-byte length + 1-byte key length + 1-byte key + 1-byte type tag), totaling ~4060 bytes within the 131,072 byte max frame size. With the default JVM stack (~512KB, ~864 bytes/frame), this triggersStackOverflowError, killing the I/O thread.Exploitable pre-authentication since
connection.startis the very first server frame.Impact
Denial of service.
StackOverflowErrorkills the client I/O thread.CWE
CWE-674: Uncontrolled Recursion
Remediation
Add a depth counter to
readTable/readArray/readFieldValueand throwMalformedFrameExceptionwhen exceeding a threshold (e.g., 32).Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client ValueReader: Oversized LongString/bytes length triggers OOM via unchecked allocation
CVE-2026-69219 / GHSA-68mj-5wr7-6fgg
More information
Details
Summary
ValueReader.readBytes()allocates a byte array sized by a wire-declared content length without validating it against actual frame data. A malicious AMQP peer triggers OOM by declaring a ~2GB string/bytes field.Vulnerable Code
src/main/java/com/rabbitmq/client/impl/ValueReader.javalines 83-95:Attack Scenario
A malicious AMQP server sends a LongString field (type tag 'S') with declared length
0x7FFFFFFE(2,147,483,646). The checkcontentLength < Integer.MAX_VALUEpasses.new byte[2147483646]attempts ~2GB allocation, causingOutOfMemoryErrorbeforereadFully()attempts to read data.The allocation size is attacker-controlled and is NOT validated against the frame size or
TruncatedInputStreambounds. Exploitable pre-authentication viaconnection.startserver-properties table.Impact
Denial of service via JVM
OutOfMemoryError. Crashes the entire JVM.CWE
CWE-789: Memory Allocation with Excessive Size Value
Remediation
Validate
contentLengthagainst the frame's remaining bytes or the negotiated max frame size (default 131,072) before allocating.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client: Unvalidated Class.forName in JSON-RPC ProcedureDescription enables arbitrary class loading
CVE-2026-63337 / GHSA-6g32-pxv4-2wfj
More information
Details
The JSON-RPC tools in
com.rabbitmq.tools.jsonrpcperformClass.forName(javaReturnType)withinitialize=trueon class names received from untrusted AMQP messages, without any validation or allowlist.Vulnerable code (
ProcedureDescription.java:101-127):When a
JsonRpcClientconnects, it callssystem.describeand receives a service description from the AMQP queue. The response JSON includesjavaReturnTypefields that are reflectively set viaJSONUtil.tryFill(), triggeringsetJavaReturnType()→computeReturnTypeAsJavaClass()→Class.forName(javaReturnType).Attack scenario:
JsonRpcClientto connect to a JSON-RPC service via RabbitMQsystem.describerequestjavaReturnTypevaluesClass.forName(attackerInput)with defaultinitialize=trueAdditionally, the loaded class from
getReturnType()is passed tomapper.parse(replyStr, expectedType)atJsonRpcClient.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.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:L/SI:L/SA:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client: TrustEverythingTrustManager used by default in useSslProtocol() enables MITM
CVE-2026-63336 / GHSA-5m9f-rphj-c435
More information
Details
Vulnerability Summary
com.rabbitmq.client.TrustEverythingTrustManageraccepts ANY TLS certificate (including null chains) and is used as the default trust manager when callingConnectionFactory.useSslProtocol()without arguments. Combined with hostname verification being disabled by default, this enables trivial man-in-the-middle attacks.Affected Components
com.rabbitmq.client.TrustEverythingTrustManager— accepts any certificatecom.rabbitmq.client.ConnectionFactory.useSslProtocol()— uses TrustEverythingTrustManagerenableHostnameVerification()must be called explicitly)com.rabbitmq.client.ConnectionFactory.getPassword()— returns plaintext with no redactionPOC (Verified on Java 21, amqp-client 5.25.0)
Attack Scenarios
TrustEverythingTrustManageraccepts it → all RabbitMQ traffic interceptedgetPassword()returns plaintext → credentials in logs/stack tracesSuggested Fix
TrustEverythingTrustManager— it should never be used in productionuseSslProtocol()should use the JVM default trust store, not TrustEverythinggetPassword()or remove the public getterSeverity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client malformed body frame triggers raw command assembler exception
CVE-2026-63335 / GHSA-qx7j-jv8m-fppr
More information
Details
Summary
RabbitMQ Java Client's inbound AMQP command assembly accepts a content header declaring a small body and then processes a larger body frame by throwing a raw
UnsupportedOperationExceptionfromCommandAssembler. A broker peer that the client has connected to can use this malformed frame sequence to fail frame processing and tear down the client connection instead of receiving a clean protocol-level malformed-frame error.This was discovered based on an existing vulnerability CVE-2017-15699.
Details
Inbound frames enter the client through
SocketFrameHandler.readFrame, which returns frames parsed from the peer-controlled input stream (src/main/java/com/rabbitmq/client/impl/SocketFrameHandler.java:197).AMQConnection.MainLoopreads each frame (src/main/java/com/rabbitmq/client/impl/AMQConnection.java:692) and dispatches non-zero-channel frames to the channel while the connection is open (src/main/java/com/rabbitmq/client/impl/AMQConnection.java:748andsrc/main/java/com/rabbitmq/client/impl/AMQConnection.java:766). The channel then passes the frame to the current command assembler throughAMQChannel.handleFrameandAMQCommand.handleFrame(src/main/java/com/rabbitmq/client/impl/AMQChannel.java:121,src/main/java/com/rabbitmq/client/impl/AMQCommand.java:114). When a content-bearing method is followed by a content header,CommandAssembler.consumeHeaderFramerecords the header's declared body size inremainingBodyBytesafter only checking it against the configured maximum (src/main/java/com/rabbitmq/client/impl/CommandAssembler.java:126throughsrc/main/java/com/rabbitmq/client/impl/CommandAssembler.java:139). The body-frame path subtracts the received payload length from that remaining count before validating that the payload fits (src/main/java/com/rabbitmq/client/impl/CommandAssembler.java:145throughsrc/main/java/com/rabbitmq/client/impl/CommandAssembler.java:149), so a body frame larger than the declared size drives the count negative and reaches the rawUnsupportedOperationExceptionatsrc/main/java/com/rabbitmq/client/impl/CommandAssembler.java:150andsrc/main/java/com/rabbitmq/client/impl/CommandAssembler.java:151.AMQConnectioncatches the resulting throwable in frame processing and performs connection failure handling and final shutdown (src/main/java/com/rabbitmq/client/impl/AMQConnection.java:695throughsrc/main/java/com/rabbitmq/client/impl/AMQConnection.java:705).PoC
poc.zip
The
UnsupportedOperationException: %%%%%% FIXME unimplementedfingerprint is the raw exception thrown at the negativeremainingBodyBytescheck inCommandAssembler.consumeBodyFrame. This line shows the malformed declared-size/body-size sequence reached the vulnerable assembler path.Impact
The attacker model is a remote AMQP broker peer that the RabbitMQ Java Client application has accepted, including a malicious broker endpoint, a compromised broker, or routing that sends the client to an attacker-controlled peer. The peer needs a non-zero open channel that can receive a content-bearing server-to-client method such as
basic.deliver, then sends the method frame, a content header declaring a body below the configured maximum, and a body frame whose payload exceeds that declared size. Under those conditions, the peer can force frame processing to fail withUnsupportedOperationExceptionand close the AMQP connection, producing a client-side denial of service for work depending on that connection; the finding does not indicate memory corruption, data disclosure, or code execution.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client accepts broker frames larger than the negotiated AMQP frame_max
CVE-2026-61634 / GHSA-5xwg-cfvj-gff5
More information
Details
Summary
The max body size was enforced to patch CVE-2023-46120, but even though that limit still works, the frame size itself still exceeds the given max size.
Root cause
The Java client records the AMQP 0-9-1
frame_maxnegotiated during connection tuning, but the socket inbound frame reader continues to validate broker-controlled payload lengths against the much largermaxInboundMessageBodySizelimit. A broker peer can therefore send a method frame whose payload is larger than the negotiatedframe_max, have it allocated and decoded, and complete the connection handshake instead of being rejected as a protocol violation.Reported by Team Atlanta.
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client has frame-level OOM: Math.min(maxInboundMessageBodySize, 0) defeats frame size enforcement
CVE-2026-75516 / GHSA-jh4v-gfqj-7rhx
More information
Details
Vulnerability
In
AMQConnection.java(line 435-436), afterConnection.Tunenegotiation, the frame-max limit is set via:When
frameMax = 0(meaning "unlimited" per AMQP spec),Math.min(67108864, 0) = 0. This value is then passed toUtils.framePayloadLimit(0)which returnsInteger.MAX_VALUE(line 77-79 of Utils.java):This completely defeats the
maxInboundMessageBodySizeprotection (default 64MB) at the frame level.Attack Scenario
A malicious AMQP server (or MITM) sends
Connection.TunewithframeMax=0:requestedFrameMax = 0(ConnectionFactory.DEFAULT_FRAME_MAX, line 82)negotiatedMaxValue(0, 0)=Math.max(0, 0)= 0 (line 673-676)Math.min(maxInboundMessageBodySize, 0)= 0 — 64MB cap defeatedframePayloadLimit(0)=Integer.MAX_VALUE— no frame size enforcementframeSize = 0x1FFFFFFF(~500MB)Frame.readFrom()(line 135) executesnew byte[frameSize]— OOM crashThe frame does not need to be a body frame — method frames, header frames, or heartbeat frames with a crafted size field all trigger the allocation before any content-level check fires.
Root Cause
The AMQP spec uses
frameMax=0to mean "unlimited", butMath.mintreats it as the integer value zero. The intent of line 435-436 was to take the smaller of the two limits, but when one limit uses 0-means-unlimited semantics,Math.minalways selects the zero, disabling the other limit.Impact
requestedFrameMax(client) and legitimate servers'frameMaxin Tune may be 0Integer.MAX_VALUEbytes)maxInboundMessageBodySize(introduced to cap allocations at 64MB) is entirely defeated at the frame levelFrame.readFrom(), not a value-layer allocation inValueReader.readBytes()Affected Code
AMQConnection.java:435-436—Math.minwith 0-means-unlimitedUtils.java:77-79—framePayloadLimit(0)returnsInteger.MAX_VALUEFrame.java:135—new byte[frameSize]allocation siteConnectionFactory.java:82—DEFAULT_FRAME_MAX = 0Suggested Fix
This treats
frameMax=0as "use maxInboundMessageBodySize as the cap" instead of "zero".Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ Java client: plaintext broker credentials leaked in exception message from ConnectionFactoryConfigurator.load()
CVE-2026-106123 / GHSA-h6w7-qmcm-q6xr
More information
Details
Summary
When property-file/Map-based
ConnectionFactorysetup fails while parsing theurikey, the library wraps the underlying exception with the raw connection string — including the plaintext username and password — baked verbatim into the new exception's message.Details
ConnectionFactoryConfigurator.load(ConnectionFactory, Map<String,String>, String)(src/main/java/com/rabbitmq/client/ConnectionFactoryConfigurator.java, lines 142-155):uriis the full AMQP URI —amqp(s)://username:password@host:port/vhost— concatenated verbatim into the exception message on any of the three catch branches. No masking/redaction exists anywhere in this class or inConnectionFactory.setUri(). This is the library's documented Spring-Boot/ops-config entry point (ConnectionFactory.load(...), available since 4.4.0), not obscure internal code.RabbitMQ's own AMQP URI spec (rabbitmq.com/docs/uri-spec) explicitly warns the password "should avoid leaking... the full URI should not appear in exception messages or log records." A sibling method twenty lines away (
ConnectionFactory.setUri(URI)) already avoids this exact mistake for a different malformed-URI case — this path wasn't caught by that same care.Note:
KeyManagementExceptionis declared in the throws clause but not actually reachable via the currentsetUri(String)→setUri(URI)call chain — the two real, reachable leak surfaces are theURISyntaxExceptionbranch (trivial, deterministic, scheme-independent) and theNoSuchAlgorithmExceptionbranch (real but narrower —amqps://only, requires a restricted/FIPS-style default TLS provider).PoC
Throws:
A password containing a space is entirely ordinary under common corporate password policies, and
java.net.URIrejects such input outright — this isn't a contrived edge case.Impact
Default Spring Boot startup-failure logging, an APM/error tracker, a CI job log, or an engineer pasting a stack trace into an internal or public ticket now holds the plaintext broker password, in a system typically far less access-controlled than wherever the credential is normally stored. Note the underlying
URISyntaxExceptionalso carries the same string in its own message, chained as the cause of RabbitMQ'sIllegalArgumentException— so removing RabbitMQ's own+ uriconcatenation alone would not fully close this; the raw secret-bearing string also shouldn't be handed tonew URI()for error-reporting purposes at all.Suggested fix: don't include the raw
uristring in the wrapped exception's message — redact the userinfo component (or omit the URI entirely) before including it in any exception text.Severity
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ: Malformed UTF-8 in shortstr properties permanently disables RPC consumers
CVE-2026-106122 / GHSA-7822-rcf6-97fx
More information
Details
Summary
A single AMQP message with malformed UTF-8 in a shortstr property (for example
correlation-id) can permanently disable a Java client RPC consumer.The client decodes malformed bytes into U+FFFD replacement characters. Each of those re-encodes to 3 bytes, so a 255-byte property becomes 765 bytes (over the 255-byte shortstr limit). When the application echoes that value back, as the documented RPC pattern does, the encoder throws an unchecked
IllegalArgumentException. That kills the consumer loop or tears down the channel.The message is never acknowledged, so the broker requeues it and it disables the next consumer that picks it up. Recovery does not help; the service stays down until an operator manually purges the queue.
In short: the decoder produces values the encoder rejects, and any client permitted to use an RPC service can permanently destroy it for everyone.
Details
ValueReader.readShortstrdecodes withnew String(b, StandardCharsets.UTF_8), which silently substitutes U+FFFD for malformed input:https://github.com/rabbitmq/rabbitmq-java-client/blob/main/src/main/java/com/rabbitmq/client/impl/ValueReader.java#L69-L75
ValueWriter.writeShortstrthen rejects the result with an unchecked exception:https://github.com/rabbitmq/rabbitmq-java-client/blob/main/src/main/java/com/rabbitmq/client/impl/ValueWriter.java#L44-L56
So a value the library itself produced cannot be passed back to the library. Any shortstr property that arrives from the wire and is echoed back (
correlation-id,reply-toused as a routing key,message-id,type,app-id) is affected.Two consumption paths are impacted:
RpcServer.mainloop()catches onlyInterruptedExceptionandShutdownSignalException, so the exception escapes and the loop thread dies silently:https://github.com/rabbitmq/rabbitmq-java-client/blob/main/src/main/java/com/rabbitmq/client/RpcServer.java#L109-L129
The pattern in the official tutorial (
basicConsume+DeliverCallback, echoingcorrelationIdand publishing toreplyTo) throws inside the callback, and the channel is closed by the exception handler. This is the more widely used of the two.In both cases
autoAckisfalseand the ack is never reached, so the message returns to the queue.A related instance exists in the library's own recovery path:
RecordedConsumer.recover()re-sends the broker-assigned consumer tag, which would hit the same throw if a malicious broker assigned a malformed tag.PoC
Neither the Java client nor pika can reproduce this: the Java writer rejects oversized strings, and both encode
stras well-formed UTF-8, which does not expand. The frames must be written by hand. A triager who tries with a stock client will not reproduce it.correlation-idis 255 ×0xFF:rpc.poison:Observed:
The same message run against
RpcServer.mainloop()kills the loop thread instead, and re-kills it on every restart.Control: 255 bytes of valid UTF-8 in the same field is handled normally and acked. The trigger is specifically the malformed input.
Negative results, for completeness: automatic connection recovery does not re-open the channel, so there is no crash loop and no CPU or memory exhaustion. The impact is loss of availability, not resource consumption.
Impact
Denial of service against applications that implement AMQP RPC with this client, including the pattern shown in the official Java RPC tutorial.
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
RabbitMQ: JSONReader in the default JSON-RPC mapper never terminates on truncated input, causing DoS
CVE-2026-106121 / GHSA-cqgh-8p3p-mx4m
More information
Details
Summary
com.rabbitmq.tools.json.JSONReader.read()never returns when its input ends inside a quoted string or a//line comment. Both scanners walk the input withStringCharacterIterator.next()but only compare against a delimiter, so once the iterator reachesCharacterIterator.DONE(�) they loop forever. The string scanner (string(), line 210,while (c != sep)) also appends�to aStringBuilderevery iteration, so it fills the heap and throwsOutOfMemoryError, taking down the JVM. The comment scanner (skipWhiteSpace(), lines 89-92,while (c != '\n')) pins a thread at 100% CPU with no allocation.This is reachable with a single message.
JsonRpcServerandJsonRpcClientfall back toDefaultJsonRpcMapperwhenever no mapper is passed (JsonRpcServer.java:84and:114,JsonRpcClient.java:186), and that mapper hands the raw message body straight toJSONReader.read()(DefaultJsonRpcMapper.java:42for the server request,:52for the client reply). A caller that can publish to the RPC request queue hangs the server; a malicious or MITM'd JSON-RPC service does the same to a client.Proof of concept
Against
amqp-client5.36.0 from Maven Central:java -Xmx64m -cp amqp-client-5.36.0.jar:. PocthrowsOutOfMemoryError: Java heap spacein about 0.1s and never prints. Swapping in the//line spins at 100% CPU and never returns. A well-formed body such as{"method":"x"}returns immediately.Impact
Availability. One small, unauthenticated message stops a JSON-RPC endpoint: the unterminated string exhausts the heap, the unterminated comment pins a thread forever. Neither is recoverable per request -
JsonRpcServer.doCallonly catchesClassCastException, and anOutOfMemoryErroraffects the whole process.Scope and fix
Only applications using the JSON-RPC-over-AMQP tooling (
com.rabbitmq.tools.jsonrpc) with the defaultDefaultJsonRpcMapperare affected.DefaultJsonRpcMapperandJSONReaderare deprecated in favour ofJacksonJsonRpcMapper, but both still ship and remain the default when no mapper is supplied. The fix is to stop both loops atCharacterIterator.DONE.Severity
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
rabbitmq/rabbitmq-java-client (com.rabbitmq:amqp-client)
v5.37.0: 5.37.0Changes between 5.36.0 and 5.37.0
This is a maintenance release with a bug fix, a usability improvement, and dependency upgrades. It is compatible with 5.36.0. All users are encouraged to upgrade.
Harden (deprecated) JSON reader
GitHub PR: #2100
Set preferred TLS protocol to version 1.3
GitHub issue: #2098
Bump dependencies
GitHub issue: #2093
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.37.0'v5.36.0: 5.36.0Changes between 5.35.0 and 5.36.0
This is a maintenance release with bug fixes and dependency upgrades. It is compatible with 5.35.0. All users are encouraged to upgrade.
Do not enable hostname verification in useTlsWithNoVerification
GitHub PR: #2081
Be more defensive when parsing shortstr values in tables
GitHub PR: #2065
Bump dependencies
GitHub issue: #2056
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.36.0'v5.35.0: 5.35.0Changes between 5.34.0 and 5.35.0
This is a maintenance release with bug fixes and dependency upgrades. It is compatible with 5.34.0. All users are encouraged to upgrade.
Refine error reporting for malformed URIs
GitHub PR: #2052
Add possibility to exclude Netty dependencies
GitHub issue: #2047
Bump dependencies
GitHub issue: #2021
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.35.0'v5.34.0: 5.34.0Compare Source
Changes between 5.33.1 and 5.34.0
This is a maintenance release with bug fixes and dependency upgrades. It is compatible with 5.33.1. All users are encouraged to upgrade.
Harden connection negotiation phase
GitHub PRs: #2018 #2020
Honor unlimited negotiated frame_max when capping inbound message size
GitHub PR: #2016
Reject negative body size when parsing content headers
GitHub PR: #2014
Bump dependencies
GitHub issue: #2006
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.34.0'v5.33.1: 5.33.1Compare Source
Changes between 5.33.0 and 5.33.1
This is a maintenance release with a bug fix. It is compatible with 5.33.0. All users are encouraged to upgrade.
Harden
ValueReaderGitHub PR: #2008
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.33.1'v5.33.0: 5.33.0Compare Source
Changes between 5.32.0 and 5.33.0
This is a maintenance release with bug fixes and dependency upgrades. It introduces minor breaking changes compared to 5.32.0 (see below for details). All users are encouraged to upgrade.
The RabbitMQ team normally maintain strict backward compatibility in minor versions. However, this release includes exceptional breaking changes that were necessary to patch security gaps and enforce secure-by-default behavior.
Breaking changes:
ConnectionFactory#useSslProtocol()now utilizes the JVM's defaultSSLContext, which validates the server certificate.useSslProtocol()was never intended for production use.ConnectionFactory#useTlsWithNoVerification()method.Harden RPC support classes
GitHub PR: #2002
Enable hostname verification by default
GitHub issue: #2005
Introduce helper for dev/test TLS setup
GitHub PR: #2001
Enforce inbound frame max more strictly
GitHub PRs: #1995 #1998
Bump dependencies
GitHub issue: #1991
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.33.0'v5.32.0: 5.32.0Compare Source
Changes between 5.31.0 and 5.32.0
This is a maintenance release with dependency upgrades. It is compatible with 5.31.0. All users are encouraged to upgrade.
Bump dependencies
GitHub issue: #1973
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.32.0'v5.31.0: 5.31.0Compare Source
Changes between 5.30.0 and 5.31.0
This is a maintenance release with a usability improvements and dependency upgrades. It is compatible with 5.30.0. All users are encouraged to upgrade.
Use explicit message for malformed frame
GitHub PR: #1960
Bump dependencies
GitHub issue: #1938
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.31.0'v5.30.0: 5.30.0Compare Source
Changes between 5.29.0 and 5.30.0
This is a maintenance release with bux fixes, usability improvements, and dependency upgrades. It is compatible with 5.29.0. All users are encouraged to upgrade.
Report malformed frame
GitHub PR: #1930
GitHub PR: #1935
Cover more built-in exchange types
GitHub PR: #1922
Use RPC timeout for
ChannelN.closeGitHub issue: #1907
Improve
PemReaderGitHub PR: #1903
Bump dependencies
GitHub issue: #1888
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.30.0'v5.29.0: 5.29.0Compare Source
Changes between 5.28.0 and 5.29.0
This is a maintenance release with a new feature and dependency upgrades. It is compatible with 5.28.0. All users are encouraged to upgrade.
Thanks to @hgeraldino for his contribution.
Support PEM keystores
GitHub issue: #1837
Bump dependencies
GitHub issue: #1814
Dependency
Maven
Gradle
compile 'com.rabbitmq:amqp-client:5.29.0'v5.28.0: 5.28.0Compare Source
Changes between 5.27.1 and 5.28.0
This is a maintenance release with a bug fix and dependency upgrades. It is compatible with 5.27.1. All users are encouraged to upgrade.
Revert ConnectionFactory return type in some methods
GitHub PR: [#1813]
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.