Every CVE Search/ Get API key

CVE-2026-69220

RabbitMQ Java client ValueReader: Unbounded recursive table/array nesting causes StackOverflowError DoS

8.7 HighFix available

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.73%Up 0.3 points since Aug 19, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.7

RabbitMQ Java client ValueReader: Unbounded recursive table/array nesting causes StackOverflowError DoS

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Record
CVE-2026-69220
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-674
Updated
2026-11-02
EUVDEUVD-2026-61042 8.7

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Record
EUVD-2026-61042
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-93j5-89vc-pph4 8.7

RabbitMQ Java client ValueReader: Unbounded recursive table/array nesting causes StackOverflowError DoS

Summary

ValueReader.readTable() and readArray() recursively call readFieldValue() 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.java lines 139-155 and 237-249:

private static Map<String, Object> readTable(DataInputStream in) throws IOException {
    long tableLength = unsignedExtend(in.readInt());
    // ...
    while(tableIn.available() > 0) {
        String name = readShortstr(tableIn);
        Object value = readFieldValue(tableIn);  // recursive call
    }
}

static Object readFieldValue(DataInputStream in) throws IOException {
    switch(in.readUnsignedByte()) {
      case 'F': value = readTable(in);  // mutual recursion
      case 'A': value = readArray(in);  // mutual recursion
    }
}

Attack Scenario

A malicious AMQP server (or MitM) sends a connection.start frame 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 triggers StackOverflowError, killing the I/O thread.

Exploitable pre-authentication since connection.start is the very first server frame.

Impact

Denial of service. StackOverflowError kills the client I/O thread.

CWE

CWE-674: Uncontrolled Recursion

Remediation

Add a depth counter to readTable/readArray/readFieldValue and throw MalformedFrameException when exceeding a threshold (e.g., 32).

Record
GHSA-93j5-89vc-pph4
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-674
Updated
2026-11-02
NVD 8.7

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Record
CVE-2026-69220
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-674
Updated
2026-11-02
OSV 8.7

RabbitMQ Java client ValueReader: Unbounded recursive table/array nesting causes StackOverflowError DoS

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Record
CVE-2026-69220
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-674
Updated
2026-11-02
OSVDEBIAN-CVE-2026-69220 8.7

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Record
DEBIAN-CVE-2026-69220
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
Show 11 moreShow less
OSVGHSA-93j5-89vc-pph4 8.7

RabbitMQ Java client ValueReader: Unbounded recursive table/array nesting causes StackOverflowError DoS

Summary

ValueReader.readTable() and readArray() recursively call readFieldValue() 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.java lines 139-155 and 237-249:

private static Map<String, Object> readTable(DataInputStream in) throws IOException {
    long tableLength = unsignedExtend(in.readInt());
    // ...
    while(tableIn.available() > 0) {
        String name = readShortstr(tableIn);
        Object value = readFieldValue(tableIn);  // recursive call
    }
}

static Object readFieldValue(DataInputStream in) throws IOException {
    switch(in.readUnsignedByte()) {
      case 'F': value = readTable(in);  // mutual recursion
      case 'A': value = readArray(in);  // mutual recursion
    }
}

Attack Scenario

A malicious AMQP server (or MitM) sends a connection.start frame 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 triggers StackOverflowError, killing the I/O thread.

Exploitable pre-authentication since connection.start is the very first server frame.

Impact

Denial of service. StackOverflowError kills the client I/O thread.

CWE

CWE-674: Uncontrolled Recursion

Remediation

Add a depth counter to readTable/readArray/readFieldValue and throw MalformedFrameException when exceeding a threshold (e.g., 32).

Record
GHSA-93j5-89vc-pph4
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-674
Updated
2026-11-02
OSVOESA-2026-4112 8.7

rabbitmq-java-client security update

The library allows Java code to interface to AMQP servers. Please see the specification page for more information on AMQP inter-operation and standards-conformance You will need an AMQP server, such as our very own RabbitMQ server, to use with the client library.

Security Fix(es):

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. maxBodyLebgth was not used when receiving Message objects. Attackers could send a very large Message causing a memory overflow and triggering an OOM Error. Users of RabbitMQ may suffer from DoS attacks from RabbitMQ Java client which will ultimately exhaust the memory of the consumer. This vulnerability was patched in version 5.18.0.(CVE-2023-46120)

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.0, the AMQP connection tuning path records the negotiated AMQP frame_max value, but src/main/java/com/rabbitmq/client/impl/SocketFrameHandler.java and NettyFrameHandlerFactory continue to validate broker-controlled frame payload lengths against maxInboundMessageBodySize because the negotiated limit is not applied consistently through setMaxInboundFramePayloadSize. A malicious or compromised broker can send a method frame larger than the negotiated frame_max during or after connection establishment, causing the client to allocate and decode a protocol-invalid frame instead of rejecting it with MalformedFrameException. The protocol violation can disrupt the affected connection and cause client-side denial of service. This issue is fixed in version 5.33.0.(CVE-2026-61634)

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.31.0, inbound AMQP command assembly in src/main/java/com/rabbitmq/client/impl/CommandAssembler.java processes a content-bearing method and header whose remainingBodyBytes value is smaller than a following AMQP.FRAME_BODY payload. CommandAssembler.consumeBodyFrame subtracts the peer-controlled payload length before validating that it fits, drives remainingBodyBytes negative, and throws a raw UnsupportedOperationException instead of MalformedFrameException. A malicious or compromised broker peer can send this malformed sequence on an open nonzero channel to terminate frame processing and close the client connection, causing denial of service for work using that connection. This issue is fixed in version 5.31.0.(CVE-2026-63335)

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.client.ConnectionFactory.useSslProtocol() and ConnectionFactory.useSslProtocol(String) configure com.rabbitmq.client.TrustEverythingTrustManager and leave hostname verification disabled, causing arbitrary server certificates, including self-signed certificates, to be accepted. A network attacker able to intercept a TLS connection can impersonate the RabbitMQ broker, read protected AMQP traffic, and modify traffic without certificate or hostname validation. The fix changes the production TLS helpers to use the JVM default trust store and enables hostname verification, while retaining an explicitly named development-only no-verification helper. This issue is fixed in version 5.33.0.(CVE-2026-63336)

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java uses ValueReader.readBytes to accept a wire-declared contentLength below Integer.MAX_VALUE and allocate a byte array before checking the bytes available in the frame. A malicious AMQP peer can send a LongString or byte-array field with type tag S and a declared length such as 0x7FFFFFFE during the pre-authentication connection.start server-properties table, causing an approximately 2 GB allocation and…

Record
OESA-2026-4112
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
OSVUBUNTU-CVE-2026-69220 8.7

The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.1, src/main/java/com/rabbitmq/client/impl/ValueReader.java permits ValueReader.readTable and ValueReader.readArray to call ValueReader.readFieldValue recursively for AMQP table type F and AMQP array type A values without a nesting-depth limit. A malicious AMQP server or network intermediary can send approximately 580 nested table levels in the pre-authentication connection.start frame, fitting within the default 131072-byte frame maximum, to trigger StackOverflowError. The error terminates the client input processing thread and causes denial of service. This issue is fixed in version 5.33.1.

Record
UBUNTU-CVE-2026-69220
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVCLSA-2026-1788776288 No score

TuxCare security update for com.rabbitmq:amqp-client (2 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 2 CVEs. Fixed in 5.19.0-tuxcare.1.

Record
CLSA-2026-1788776288
Updated
2026-11-02
OSVCLSA-2026-1789206834 No score

TuxCare security update for com.rabbitmq:amqp-client (3 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 3 CVEs. Fixed in 5.21.0-tuxcare.1.

Record
CLSA-2026-1789206834
Updated
2026-11-02
OSVCLSA-2026-1792591661 No score

TuxCare security update for com.rabbitmq:amqp-client (4 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 4 CVEs. Fixed in 5.7.3-tuxcare.1.

Record
CLSA-2026-1792591661
Updated
2026-11-02
OSVCLSA-2026-1792593109 No score

TuxCare security update for com.rabbitmq:amqp-client (4 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 4 CVEs. Fixed in 5.4.3-tuxcare.1.

Record
CLSA-2026-1792593109
Updated
2026-11-02
OSVCLSA-2026-1792593187 No score

TuxCare security update for com.rabbitmq:amqp-client (4 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 4 CVEs. Fixed in 5.5.3-tuxcare.1.

Record
CLSA-2026-1792593187
Updated
2026-11-02
OSVCLSA-2026-1792593363 No score

TuxCare security update for com.rabbitmq:amqp-client (2 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 2 CVEs. Fixed in 4.0.3-tuxcare.1.

Record
CLSA-2026-1792593363
Updated
2026-11-02
OSVCLSA-2026-1792593410 No score

TuxCare security update for com.rabbitmq:amqp-client (2 CVEs)

TuxCare rebuilt com.rabbitmq:amqp-client to address 2 CVEs. Fixed in 5.5.0-tuxcare.1.

Record
CLSA-2026-1792593410
Updated
2026-11-02
OSVROOT-APP-MAVEN-CVE-2026-69220 No score

CVE-2026-69220 in com.rabbitmq:amqp-client - Patched by Root

Root has patched CVE-2026-69220 in the com.rabbitmq:amqp-client package for Root:Maven. Multiple fixed versions available.

Record
ROOT-APP-MAVEN-CVE-2026-69220
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
com.rabbitmq:amqp-client
Maven
through 5.33.0
5.33.1
com.rabbitmq:amqp-client
TuxCare:Maven
5.19.0 up to 5.19.0-tuxcare.1
5.19.0-tuxcare.1
com.rabbitmq:amqp-client
TuxCare:Maven
5.21.0 up to 5.21.0-tuxcare.1
5.21.0-tuxcare.1
com.rabbitmq:amqp-client
TuxCare:Maven
5.7.3 up to 5.7.3-tuxcare.1
5.7.3-tuxcare.1
com.rabbitmq:amqp-client
TuxCare:Maven
5.4.3 up to 5.4.3-tuxcare.1
5.4.3-tuxcare.1
com.rabbitmq:amqp-client
TuxCare:Maven
5.5.3 up to 5.5.3-tuxcare.1
5.5.3-tuxcare.1
com.rabbitmq:amqp-client
TuxCare:Maven
4.0.3 up to 4.0.3-tuxcare.1
4.0.3-tuxcare.1
com.rabbitmq:amqp-client
TuxCare:Maven
5.5.0 up to 5.5.0-tuxcare.1
5.5.0-tuxcare.1
rabbitmq-java-client
Debian:12
All versions, plus listed versions
5.0.0-1.15.0.0-2
None known
rabbitmq-java-client
Debian:13
All versions, plus listed versions
5.0.0-1.15.0.0-2
None known
Show 14 moreShow less
Affected packages
PackageAffectedFixed
com.rabbitmq:amqp-client
Maven
before 5.33.1, plus listed versions
1.3.01.5.41.5.51.6.01.7.2
Show 45 moreShow less
1.8.01.8.12.0.02.1.02.1.12.2.02.3.02.3.12.4.12.5.02.5.12.6.02.6.12.7.02.7.12.8.02.8.12.8.22.8.32.8.42.8.52.8.62.8.73.0.03.0.13.0.23.0.33.0.43.1.03.1.13.1.23.1.33.1.43.2.03.2.13.2.23.2.33.2.43.3.03.3.13.3.23.3.33.3.43.3.53.4.0
5.33.1
rabbitmq-java-client
openEuler:24.03-LTS-SP3
before 3.6.5-4.oe2403sp3
3.6.5-4.oe2403sp3
rabbitmq-java-client
openEuler:24.03-LTS-SP4
before 3.6.5-4.oe2403sp4
3.6.5-4.oe2403sp4
rabbitmq-java-client
openEuler:20.03-LTS-SP4
before 3.6.5-2.oe2003sp4
3.6.5-2.oe2003sp4
rabbitmq-java-client
openEuler:22.03-LTS-SP4
before 3.6.5-4.oe2203sp4
3.6.5-4.oe2203sp4
rabbitmq-java-client
openEuler:24.03-LTS-SP1
before 3.6.5-4.oe2403sp1
3.6.5-4.oe2403sp1
com.rabbitmq:amqp-client
Root:Maven
before 5.30.0-aikido.1
5.30.0-aikido.15.25.0-aikido.25.27.1-aikido.15.27.1-aikido.35.27.1-aikido.25.30.0-aikido.2
io.root.com.rabbitmq:amqp-client
Root:Maven
before 5.30.0-root.io.1
5.30.0-root.io.15.25.0-root.io.25.27.1-root.io.15.27.1-root.io.35.27.1-root.io.25.30.0-root.io.2
rabbitmq-java-client
Ubuntu:18.04:LTS
All versions, plus listed versions
5.0.0-1
None known
rabbitmq-java-client
Ubuntu:20.04:LTS
All versions, plus listed versions
5.0.0-1
None known
rabbitmq-java-client
Ubuntu:22.04:LTS
All versions, plus listed versions
5.0.0-1.1
None known
rabbitmq-java-client
Ubuntu:24.04:LTS
All versions, plus listed versions
5.0.0-1.1
None known
rabbitmq-java-client
Ubuntu:26.10
All versions, plus listed versions
5.0.0-2
None known
rabbitmq-java-client
Ubuntu:26.04:LTS
All versions, plus listed versions
5.0.0-1.15.0.0-2
None known

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-69220 is a high vulnerability (CVSS 8.7) in Rabbitmq Rabbitmq-java-client, published August 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.73%, the 54th percentile. Fixed in com.rabbitmq:amqp-client 5.33.1.

References

Show 13 moreShow less
This page doesn't list everything

Left out here: 101 versions and the rest of 1 source description. The JSON record has them.

MoveEnter Open