CVE-2026-66079 in RabbitMQ
Tóm tắt
Bởi VulDB • 24/09/2026
RabbitMQ là một broker tin nhắn và streaming. Trước các phiên bản 3.13.15, 4.0.20, 4.1.11 và 4.2.6, hàm parse_array_primitive/2 cho constructor 0x45 (list0) trả về một phần tử có byte-width B = 0. Trình phân tích cú pháp array32 bao quanh tại dòng 148 đọc trường Count dài 4 byte từ luồng dữ liệu và lặp lại Count lần để tiêu thụ B bytes mỗi lần; với B = 0, không có đầu vào nào được tiêu thụ nhưng vòng lặp vẫn xây dựng một danh sách gồm các phần tử rỗng có số lượng là Count, bị giới hạn duy nhất bởi trường 32-bit. Khung SASL-mechanisms / SASL-init được phân tích cú pháp bởi amqp10_framing:decode_bin/1 từ rabbit_amqp_reader.erl:412 trước khi quá trình xác thực hoàn tất. Giới hạn incoming_max_frame_size (mặc định 8192 byte) áp dụng cho khung, không phải trường Count, do đó một payload dài 19 byte với Count = 0xFFFFFFFF được chấp nhận. Không có max_heap_size nào được đặt trên tiến trình reader. Một kẻ tấn công mạng chưa xác thực có thể làm sập bất kỳ node RabbitMQ nào có listener AMQP 1.0 được bật (cổng mặc định là 5672) bằng cách gửi một khung duy nhất dài khoảng 19 byte. Tiến trình reader cố gắng xây dựng danh sách gồm ~4 tỷ phần tử rỗng, khiến bộ nhớ heap bị cạn kiệt và làm chấm dứt Erlang VM. Tất cả các tenant và giao thức trên node đều mất dịch vụ. Các điều kiện tiên quyết bao gồm khả năng tiếp cận mạng đến listener AMQP (cổng 5672, được bật theo mặc định) và không yêu cầu xác thực. Vấn đề này đã được sửa chữa trong các phiên bản 3.13.15, 4.0.20, 4.1.11 và 4.2.6.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.