CVE-2026-67225 Overview
CVE-2026-67225 is a denial-of-service vulnerability in RabbitMQ, an open-source messaging and streaming broker. The flaw affects the stream protocol implementation in RabbitMQ versions 3.13.0 through 3.13.14, 4.0.x prior to 4.0.20, 4.1.x prior to 4.1.11, and 4.2.x prior to 4.2.6. The stream protocol stored the FrameMax value negotiated during the Tune handshake but failed to compare it against an inbound frame's declared length before buffering the frame. A remote client with the stream plugin enabled can declare an oversized frame to trigger excessive memory consumption. The issue is categorized under [CWE-770] (Allocation of Resources Without Limits or Throttling).
Critical Impact
Remote unauthenticated attackers can cause memory exhaustion and broker-level denial of service on RabbitMQ nodes with the stream plugin enabled.
Affected Products
- RabbitMQ Server 3.13.0 through 3.13.14
- RabbitMQ Server 4.0.x prior to 4.0.20
- RabbitMQ Server 4.1.x prior to 4.1.11 and 4.2.x prior to 4.2.6
Discovery Timeline
- 2026-09-25 - CVE-2026-67225 published to the National Vulnerability Database
- 2026-09-28 - Last updated in NVD database
Technical Details for CVE-2026-67225
Vulnerability Analysis
RabbitMQ's stream protocol negotiates a maximum frame size (FrameMax) during the Tune handshake between client and broker. The broker records this negotiated value for subsequent connection use. However, the stream protocol handler did not enforce this limit when processing inbound frames.
When a client transmits a frame, the declared length header indicates how many bytes the broker should buffer. The vulnerable code path allocates buffer space based on the client-declared size without validating it against the previously negotiated FrameMax. A malicious client can therefore declare arbitrarily large frames and force the broker to reserve excessive memory. Repeated or sufficiently large declarations exhaust node memory, degrading or halting message processing for all tenants on the affected broker.
Root Cause
The root cause is missing bounds enforcement in the stream protocol frame reader. The negotiated FrameMax value exists in connection state but is not consulted during the length validation step that precedes buffer allocation. This matches the pattern described in [CWE-770], where a resource request is honored without applying the configured ceiling.
Attack Vector
Exploitation requires network reachability to the RabbitMQ stream listener (default TCP port 5552) and the rabbitmq_stream plugin to be enabled on the broker. No authentication is required to initiate the handshake and submit a crafted frame. An attacker opens a stream protocol connection, completes the Tune negotiation, then sends a frame with an inflated length field to force oversized buffer allocation. Repeating this across connections amplifies memory pressure until the node becomes unresponsive.
Technical details are documented in the GitHub Security Advisory GHSA-c8c4-gvv4-8j3q.
Detection Methods for CVE-2026-67225
Indicators of Compromise
- Sudden spikes in RabbitMQ Erlang VM memory usage without corresponding growth in queue depth or publisher throughput
- Broker memory alarms triggered on nodes exposing the stream protocol listener
- Unexpected disconnects, crash dumps, or oom_killer events on hosts running rabbitmq-server
- Repeated short-lived stream protocol connections from unfamiliar source addresses in broker logs
Detection Strategies
- Monitor the rabbitmq_stream plugin TCP listener (default port 5552) for connections originating from untrusted networks
- Correlate RabbitMQ management metrics (rabbitmq_resident_memory_bytes, connection counts) with network flow data to identify abnormal client behavior
- Alert on broker log entries indicating connection termination due to frame size or memory threshold violations
Monitoring Recommendations
- Enable Prometheus or management-plugin metric collection and set thresholds on process memory and connection churn
- Forward RabbitMQ logs to a centralized logging platform for anomaly review and retention
- Track the installed broker version across the fleet to confirm patched builds are deployed everywhere the stream plugin is enabled
How to Mitigate CVE-2026-67225
Immediate Actions Required
- Upgrade RabbitMQ to version 3.13.15, 4.0.20, 4.1.11, or 4.2.6 as applicable to the deployed release line
- Inventory brokers to determine where the rabbitmq_stream plugin is enabled and prioritize those nodes for patching
- Restrict network access to the stream protocol listener using firewall rules or security groups until patches are applied
Patch Information
The vulnerability is resolved in RabbitMQ Server 3.13.15, 4.0.20, 4.1.11, and 4.2.6. Patched builds enforce the negotiated FrameMax against inbound frame length before buffering. Release notes are available at the RabbitMQ Server 4.2.6 release page.
Workarounds
- Disable the stream plugin on brokers that do not require it using rabbitmq-plugins disable rabbitmq_stream
- Place the stream listener behind a trusted network boundary and block external access to TCP port 5552
- Apply per-connection memory and connection-count limits via RabbitMQ configuration to reduce blast radius
# Disable the stream plugin on hosts that do not need it
rabbitmq-plugins disable rabbitmq_stream
# Verify installed version after upgrade
rabbitmqctl version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

