CVE-2026-66073
MEDIUM(6.5)CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- CVSS 6.5 — Mittel
EPSS-Score
0.4%
Exploit-Wahrscheinlichkeit (30 Tage)
CVSS Score
6.5
Technische Schwere
Beschreibung
RabbitMQ is a messaging and streaming broker. From 3.13.0 until 3.13.15 and 4.0.20 and 4.1.11 and 4.2.6, Atom table exhaustion via management API node field. pUT /api/queues/:vhost/:name (and the exchanges and bindings endpoints) accepts a node JSON field. The value goes through rabbitnodes:make → listtoatom with no cluster membership check first. Each unique value permanently leaks one atom. A March 2026 refactoring (ea61ce2563) introduced safe helpers in rabbitmgmtnodes.erl (parsenodename, safeatom, and requirenodename, using binarytoexistingatom) and fixed several callers (QQ replica ops, wmauthattempts, wmnodememoryets, getsortreverse, and rabbitfederationmgmt), but getnode/1 in rabbitmgmtutil.erl:880-885, the primary vector used by directrequest/6, was not Roughly 900K requests crash the VM via systemlimit, and all tenants lose Any user with the management tag and one vhost, the lowest privilege This issue is fixed in versions 3.13.15 and 4.0.20 and 4.1.11 and 4.2.6.
Erkennung & Indikatoren
Ausnutzung
In den geprüften Quellen nicht genannt
Behobene Versionen
- 3.13.15
- 4.0.20
- 4.1.11
- 4.2.6
- 4.3.0
Threat-Hunting-Queries
Detection for Atom table exhaustion in RabbitMQ via management API node field. This query looks for repeated PUT requests to /api/queues/:vhost/:name (or exchanges/bindings endpoints) with varying 'node' field values, which could indicate an attempt to exhaust the atom table. This is a behavioral detection and may require tuning to reduce false positives.
Sentinel/Defender KQL
let timeframe = 1h;
let threshold = 100;
HttpEvents
| where Url contains "/api/queues/" or Url contains "/api/exchanges/" or Url contains "/api/bindings/"
| where RequestMethod == "PUT"
| summarize distinct_node_values = dcount(tostring(parse_json(RequestBody).node)), request_count = count() by bin(TimeGenerated, 5m), SourceIp, DestinationIp, Url
| where distinct_node_values > threshold
| project TimeGenerated, SourceIp, DestinationIp, Url, distinct_node_values, request_count
| order by TimeGenerated descSplunk SPL
index=* (uri_path="/api/queues/*" OR uri_path="/api/exchanges/*" OR uri_path="/api/bindings/*") method="PUT"
| spath input=request_body path=node output=node_field
| stats dc(node_field) as distinct_node_values, count as request_count by _time, clientip, dest_ip, uri_path
| where distinct_node_values > 100
| sort -_timeSigma
title: RabbitMQ Atom Table Exhaustion Attempt
id: 00000000-0000-0000-0000-000000000001
status: experimental
description: Detects potential attempts to exhaust the RabbitMQ atom table via repeated management API calls with unique node field values.
author: SecBoard
date: 2026/07/09
logsource:
product: rabbitmq
service: management_api
detection:
selection:
http.method: "PUT"
http.url|contains:
- "/api/queues/"
- "/api/exchanges/"
- "/api/bindings/"
timeframe: 1h
condition: selection | stats count() as request_count, distinct_count(http.request_body.node) as distinct_node_values by http.source_ip, http.url | where distinct_node_values > 100
level: mediumElastic ES|QL
FROM logs
| WHERE http.method == "PUT"
| WHERE http.url.path : "/api/queues/*" OR http.url.path : "/api/exchanges/*" OR http.url.path : "/api/bindings/*"
| EVAL node_field = json_field(http.request.body.content, 'node')
| SUM request_count = count(), distinct_node_values = distinct_count(node_field) BY client.ip, http.url.path, @timestamp
| WHERE distinct_node_values > 100
| SORT @timestamp DESCSecBoard-generated · behavioral · requires customization — Von SecBoard erzeugt und nicht in einer Zielumgebung validiert. Vor dem Einsatz an die eigene Protokollierung anpassen.
Indikatoren
Datei-Hashes (1)
- 7f64311471840e68f8cae09e4d4fdc4c8aca9229
Übernommen wurden nur Indikatoren, die wörtlich in einer Hersteller- oder Research-Quelle standen.
Betroffene Produkte
- cpe:2.3:a:broadcom:rabbitmq_server:*:*:*:*:*:*:*:*
- cpe:2.3:a:broadcom:rabbitmq_server:*:*:*:*:*:*:*:*
- cpe:2.3:a:broadcom:rabbitmq_server:*:*:*:*:*:*:*:*
- cpe:2.3:a:broadcom:rabbitmq_server:*:*:*:*:*:*:*:*