
RabbitMQ là nền tảng trung gian xử lý và truyền tải thông điệp được sử dụng rộng rãi trong các hệ thống phân tán và kiến trúc microservices.
Trong thực tế, RabbitMQ thường đảm nhiệm việc chuyển tiếp các sự kiện quan trọng như:
-
Xử lý đơn hàng thương mại điện tử.
-
Giao dịch thanh toán.
-
Xác thực người dùng.
-
Đồng bộ dữ liệu giữa các dịch vụ.
-
Kết nối giữa các ứng dụng trong môi trường doanh nghiệp.
Lỗ hổng nguy hiểm nhất được định danh là CVE-2026-57219, có điểm CVSS 8,7/10. Điểm đáng lo ngại là kẻ tấn công không cần xác thực vẫn có thể khai thác.
Giao diện quản trị RabbitMQ tồn tại một API cũ có tên: GET /api/auth
API này vô tình công khai toàn bộ cấu hình OAuth của hệ thống, bao gồm cả trường cực kỳ nhạy cảm: oauth_client_secret
Đây là khóa bí mật được sử dụng khi RabbitMQ kết nối với các hệ thống xác thực như:
-
Microsoft Entra ID (Azure AD)
-
Auth0
-
Keycloak
-
Cloud Foundry UAA
Quá trình điều tra cho thấy nguyên nhân lại đến từ một lỗi lập trình rất đơn giản. Trong khi các API quản trị khác đều yêu cầu xác thực quyền truy cập, API /api/auth sử dụng hàm: is_authorized/2
Tuy nhiên hàm này lại được lập trình để luôn trả về giá trị “true”, đồng nghĩa mọi yêu cầu đều được xem là hợp lệ. Nói cách khác, bất kỳ ai có thể truy cập giao diện quản trị RabbitMQ đều có thể lấy được thông tin OAuth bí mật mà không cần đăng nhập.
-
Tạo hoặc chiếm quyền tài khoản quản trị.
-
Đọc toàn bộ thông điệp đang được truyền tải.
-
Chỉnh sửa hoặc xóa Queue.
-
Thay đổi cấu hình RabbitMQ.
-
Thêm người dùng mới.
-
Can thiệp vào luồng xử lý dữ liệu của ứng dụng.
Lỗ hổng thứ hai được định danh là CVE-2026-57221, có điểm CVSS 5,3/10. Mặc dù mức độ nghiêm trọng thấp hơn, đây vẫn là vấn đề đáng lo ngại trong các môi trường đa khách hàng. Lỗ hổng xuất hiện trong tính năng Passive Declare của RabbitMQ. Đây là cơ chế cho phép kiểm tra xem Queue hoặc Exchange có tồn tại hay không mà không tạo mới chúng.
Thông thường thao tác này phải trải qua bước kiểm tra quyền truy cập. Tuy nhiên do lỗi trong mã nguồn, cơ chế kiểm tra quyền đã bị bỏ qua hoàn toàn.
-
Liệt kê các Queue trong hệ thống.
-
Liệt kê Exchange của các ứng dụng khác.
-
Theo dõi thống kê lưu lượng.
-
Xem số lượng người tiêu thụ (Consumer).
-
Quan sát hoạt động của các tenant khác.
Miggo cho biết nguyên nhân của CVE-2026-57221 bắt nguồn từ quy tắc đặt tên biến trong mã nguồn.
Một biến liên quan đến kiểm tra quyền truy cập bị đánh dấu là “không sử dụng”, dẫn tới việc cơ chế xác thực vô tình bị vô hiệu hóa. Đây là ví dụ điển hình cho thấy những lỗi rất nhỏ trong quá trình phát triển phần mềm có thể tạo ra các lỗ hổng bảo mật nghiêm trọng.
Cả hai lỗ hổng đều tồn tại từ phiên bản: RabbitMQ 3.13.0 (đầu năm 2024). Các phiên bản bị ảnh hưởng bao gồm phần lớn các hệ thống RabbitMQ được triển khai trong khoảng hơn hai năm trở lại đây.
Hiện chưa ghi nhận trường hợp bị khai thác ngoài thực tế. Tuy nhiên do thông tin kỹ thuật đã được công bố công khai, nguy cơ xuất hiện các cuộc tấn công trong thời gian tới là hoàn toàn có thể xảy ra.
Điểm thú vị của nghiên cứu lần này là Miggo sử dụng hệ thống AI để tìm kiếm các bất thường trong cơ chế kiểm soát truy cập.
Theo nhóm nghiên cứu, các tác nhân AI (AI Agents) liên tục so sánh:
-
Các API có cơ chế xác thực khác nhau.
-
Các chức năng tương tự nhưng kiểm tra quyền khác nhau.
-
Các đoạn mã có dấu hiệu bỏ sót bước xác thực.
Một chiến dịch phân tích RabbitMQ kéo dài khoảng 7 giờ, trong đó AI đã kiểm tra 206 giả thuyết bảo mật khác nhau trước khi xác định được hai lỗ hổng này.
Điều này phản ánh xu hướng mới trong lĩnh vực an ninh mạng, khi AI ngày càng được sử dụng để rà soát những hệ thống mã nguồn lớn và phức tạp.
-
RabbitMQ 4.3.0
-
RabbitMQ 4.2.6
-
RabbitMQ 4.1.11
-
RabbitMQ 4.0.20
-
RabbitMQ 3.13.15
-
Nâng cấp RabbitMQ lên phiên bản đã vá càng sớm càng tốt.
-
Thay đổi (rotate) OAuth Client Secret nếu giao diện quản trị từng được truy cập từ Internet.
-
Kiểm tra các container image, máy ảo và triển khai Kubernetes đang sử dụng RabbitMQ phiên bản cũ.
-
Tách biệt khách hàng hoặc ứng dụng bằng Virtual Host (vHost) riêng thay vì dùng chung.
-
Theo dõi các truy cập bất thường tới giao diện quản trị RabbitMQ.
-
Rà soát lịch sử cấp quyền OAuth để phát hiện dấu hiệu lộ lọt thông tin xác thực.