RabbitMQ Federation Upstream Skips Vhost Authorization Allowing Cross-Vhost Message Access
Chuyên gia Duong Tran của CyStack đã phát hiện lỗ hổng vượt qua kiểm soát truy cập trong plugin Federation của RabbitMQ, phá vỡ ranh giới phân tách tenant cốt lõi của broker, và chứng minh bằng cách rút toàn bộ tin nhắn của một tenant khác. Cơ chế cô lập vhost là thứ giữ các tenant tách biệt trong RabbitMQ, và người dùng 'policymaker' đáng lẽ chỉ được giới hạn trong các vhost mà họ có thể đăng nhập. Nhưng khi một federation-upstream được định nghĩa bằng URI dạng empty-host ("direct"), bộ kiểm tra không bao giờ đối chiếu người dùng tạo với vhost nằm trong URI đó — đúng bước kiểm tra mà chính plugin Shovel của RabbitMQ vẫn thực hiện trên cùng nguyên hàm này. Kết quả là một 'policymaker' đặc quyền thấp trên một vhost có thể khai báo upstream, queue và policy để hút tin nhắn từ một vhost hoàn toàn khác mà họ không có quyền; liên kết federation kết nối nội bộ dưới danh nghĩa người dùng 'none' đặc quyền, vốn chấp thuận mọi kiểm tra. Với chế độ ack mặc định, tin nhắn của nạn nhân bị tiêu thụ và xóa đi chứ không chỉ được sao chép, nên đây vừa là rò rỉ dữ liệu vừa là mất mát dữ liệu xuyên ranh giới tenant. Lỗ hổng ảnh hưởng RabbitMQ 3.13.0–3.13.17, 4.0.0–4.0.23, 4.1.0–4.1.13, 4.2.0–4.2.8 và 4.3.0–4.3.2; nâng cấp lên 3.13.18, 4.0.24, 4.1.14, 4.2.9 hoặc 4.3.3 sẽ khắc phục.
auth-bypassmessage-accessvhost