CVE-2026-67232
Beschrijving NL
RabbitMQ is een messaging en streaming broker. Voorafgaand aan de versies 3.13.15, 4.0.20, 4.1.11, 4.2.6 en 4.3.0, hebben de cowboy WebSocket-opties op regel 117 compress => true ingesteld, waardoor RFC 7692 permessage-deflate-onderhandeling mogelijk is. De handler stelt max_frame_size niet in, dus cowboy's standaard van oneindigheid is van toepassing. cowlib's cow_ws:parse_payload/9 roept zlib:inflate/2 aan op de gecomprimeerde payload zonder limiet voor de uitvoergrootte. Een aanvaller kan onderhandelen over permessage-deflate tijdens de WebSocket-upgrade en een frame verzenden met een zlib-bom (bijv. 50 KB → 5 GB). Decompressie vindt plaats in het verbindingsproces voordat websocket_handle/2 ooit de MQTT-bytes ziet. Een niet-geverifieerde aanvaller kan een RabbitMQ-knooppunt met de Web-MQTT-plug-in laten crashen door een enkel zeer gecomprimeerd WebSocket-frame (een paar KB op de draad) te verzenden dat wordt opgeblazen tot gigabytes in het geheugen. De cowboy WebSocket-handler decomprimeert het hele frame voordat het MQTT-verbindingspakket wordt verwerkt, dus er zijn geen inloggegevens vereist. Voorwaarden zijn onder andere rabbitmq_web_mqtt plug-in ingeschakeld (niet standaard, maar gebruikelijk voor browserclients) Netwerkbereikbaarheid naar poort 15675/15676 Geen authenticatie vereist. Dit probleem is opgelost in versies 3.13.15, 4.0.20, 4.1.11, 4.2.6 en 4.3.0.
Origineel (Engels) tonen
RabbitMQ is a messaging and streaming broker. Prior to versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.0, The cowboy WebSocket options at line 117 set compress => true, enabling RFC 7692 permessage-deflate negotiation. The handler does not set max_frame_size, so cowboy's default of infinity applies. cowlib's cow_ws:parse_payload/9 calls zlib:inflate/2 on the compressed payload with no output-size limit. An attacker can negotiate permessage-deflate during the WebSocket upgrade and send a frame containing a zlib bomb (e.g. 50 KB → 5 GB). Decompression occurs in the connection process before websocket_handle/2 ever sees the MQTT bytes. An unauthenticated attacker can crash a RabbitMQ node running the Web-MQTT plugin by sending a single highly-compressed WebSocket frame (a few KB on the wire) that inflates to gigabytes in memory. The cowboy WebSocket handler decompresses the entire frame before the MQTT CONNECT packet is processed, so no credentials are required. Preconditions include rabbitmq_web_mqtt plugin enabled (not default, but common for browser clients) Network reachability to port 15675/15676 No authentication required. This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.0.