CVE-2026-69219
Java vulnerability analysis and mitigation

Overview

CVE-2026-69219 is a memory exhaustion (Denial of Service) vulnerability in the RabbitMQ Java client library (com.rabbitmq:amqp-client) affecting all versions up to and including 5.33.0. The flaw resides in ValueReader.readBytes() within src/main/java/com/rabbitmq/client/impl/ValueReader.java, where a wire-declared content length is trusted without validation against actual available frame data, enabling a malicious AMQP peer to trigger an OutOfMemoryError and crash the JVM. The vulnerability was disclosed on August 18, 2026, with the fix backported and released in version 5.33.1. It carries a CVSS v4.0 base score of 8.7 (High) (GitHub Advisory).

Technical details

The root cause is classified as CWE-789 (Memory Allocation with Excessive Size Value). In the vulnerable code path, ValueReader.readBytes() reads a 4-byte integer from the wire as contentLength and checks only that it is less than Integer.MAX_VALUE before allocating new byte[(int)contentLength] — without verifying that the stream actually contains that many bytes. A malicious AMQP server can send a LongString or byte-array field (type tag 'S') with a declared length of 0x7FFFFFFE (2,147,483,646 bytes) during the pre-authentication connection.start server-properties table exchange, causing the client to attempt a ~2 GB heap allocation before readFully() is ever called. The fix, introduced in PR #2007 and backported in PR #2008, validates contentLength against in.available() and throws a MalformedFrameException if the declared length exceeds available data (GitHub Advisory, Fix Commit).

Impact

Successful exploitation results in a JVM OutOfMemoryError that crashes the entire Java process hosting the RabbitMQ client, causing complete service unavailability for any application relying on that client instance. The attack requires no authentication and can be triggered during the initial AMQP handshake, meaning any application that connects to an untrusted or attacker-controlled AMQP endpoint is at risk. There is no confidentiality or integrity impact; the sole consequence is availability loss (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code has been observed, and there is no evidence of in-the-wild exploitation at the time of disclosure (GitHub Advisory). The EPSS score is 0.0, reflecting the current absence of active exploitation signals. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Despite the lack of a public PoC, the attack is conceptually straightforward — requiring only the ability to act as a malicious AMQP server — and is exploitable pre-authentication, lowering the barrier for abuse in environments where clients connect to external or untrusted brokers.

Exploitation steps

  1. Set up a malicious AMQP server: Deploy a custom AMQP 0-9-1 server (or modify an existing one) capable of crafting arbitrary connection.start frames with attacker-controlled server-properties.
  2. Lure or redirect the target client: Position the malicious server so that a vulnerable RabbitMQ Java client (version ≤ 5.33.0) connects to it — either by controlling the broker endpoint the client is configured to use, via DNS poisoning, or through a man-in-the-middle attack on an unencrypted AMQP connection.
  3. Craft the malicious connection.start frame: In the server-properties table sent during the AMQP handshake, include a LongString field (type tag 'S') with a declared length of 0x7FFFFFFE (2,147,483,646) but provide no actual data bytes for that field.
  4. Trigger OOM allocation: When the client's ValueReader.readBytes() processes this field, it passes the contentLength < Integer.MAX_VALUE check and attempts new byte[2147483646], exhausting JVM heap memory.
  5. Achieve denial of service: The resulting OutOfMemoryError crashes the JVM process, taking down the application using the RabbitMQ Java client (GitHub Advisory).

Indicators of compromise

  • Logs: JVM crash logs or application logs containing java.lang.OutOfMemoryError: Java heap space immediately following an AMQP connection attempt; stack traces referencing com.rabbitmq.client.impl.ValueReader.readBytes or ValueReader.readLongstr.
  • Network: Outbound AMQP connections (TCP port 5672 or 5671) to unexpected or newly observed broker IP addresses; AMQP connection.start frames with anomalously large field-value length prefixes (e.g., 0x7FFFFFFE) observable via packet capture.
  • Process: Sudden JVM process termination (OutOfMemoryError) in services using com.rabbitmq:amqp-client ≤ 5.33.0, particularly during connection establishment rather than during normal message processing.

Mitigation and workarounds

The primary remediation is to upgrade the RabbitMQ Java client library (com.rabbitmq:amqp-client) to version 5.33.1 or later, which validates the declared content length against available stream data before allocating memory (GitHub Advisory, Release Tag). As a workaround where immediate upgrade is not possible, restrict AMQP client connections exclusively to trusted, known-good broker endpoints and enforce TLS mutual authentication to prevent connections to rogue servers. Additionally, consider configuring JVM-level memory limits and out-of-memory handlers to enable graceful degradation rather than hard crashes.

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-69220HIGH8.7
  • Java logoJava
  • com.rabbitmq:amqp-client
NoYesAug 18, 2026
CVE-2026-69219HIGH8.7
  • Java logoJava
  • com.rabbitmq:amqp-client
NoYesAug 18, 2026
CVE-2026-63337HIGH7.5
  • Java logoJava
  • apache-nifi
NoYesAug 18, 2026
CVE-2024-45747HIGH7.2
  • Java logoJava
  • org.geoserver.web:gs-web-app
NoYesAug 19, 2026
CVE-2026-53966HIGH7.1
  • Java logoJava
  • org.xwiki.platform:xwiki-platform-livedata-livetable
NoYesAug 19, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management