CVE-2026-66079 in RabbitMQ
Riassunto
di VulDB • 23/09/2026
RabbitMQ è un broker di messaggistica e streaming. Prima delle versioni 3.13.15, 4.0.20, 4.1.11 e 4.2.6, la funzione parse_array_primitive/2 per il costruttore 0x45 (list0) restituisce un elemento con byte-width B = 0. Il parser array32 circostante alla riga 148 legge un Count a 4 byte dal flusso e itera Count volte consumando B bytes ciascuna; poiché B = 0, nessun input viene consumato e il ciclo costruisce una lista di elementi vuoti pari al valore di Count, limitata solo dal campo a 32 bit. Il frame SASL-mechanisms / SASL-init è analizzato da amqp10_framing:decode_bin/1 in rabbit_amqp_reader.erl:412 prima del completamento dell'autenticazione. Il parametro pre-auth incoming_max_frame_size (impostato di default su 8192 byte) limita la dimensione del frame, non il campo Count, quindi un payload di 19 byte con Count = 0xFFFFFFFF viene accettato. Non è impostata alcuna max_heap_size sul processo reader. Un attaccante di rete non autenticato può causare il crash (DoS) di qualsiasi nodo RabbitMQ che ha l'ascoltatore AMQP 1.0 abilitato (porta predefinita 5672) inviando un singolo frame di circa 19 byte. Il processo reader tenta di costruire una lista di circa 4 miliardi di elementi vuoti, esaurendo la memoria heap e terminando l'Erlang VM. Tutti i tenant e i protocolli sul nodo perdono il servizio. I prerequisiti includono la raggiungibilità di rete verso l'ascoltatore AMQP (porta 5672, abilitata per impostazione predefinita) e nessuna autenticazione richiesta. Questo problema è risolto nelle versioni 3.13.15, 4.0.20, 4.1.11 e 4.2.6.
If you want to get best quality of vulnerability data, you may have to visit VulDB.