-
Threat: Unauthorized Broker Access (Spoofing)
- Description: An attacker gains access to the RabbitMQ broker by guessing or stealing credentials, or by exploiting a misconfiguration that allows unauthenticated access. The attacker could then publish malicious messages, consume legitimate messages, or disrupt the service.
- Impact:
- Data breaches (reading sensitive messages, assuming the application didn't encrypt them).
- Data corruption (injecting malicious messages).
- Denial of service (flooding queues, exhausting resources).
- System compromise (if combined with other vulnerabilities).
- Affected Component:
rabbit_auth_backend_internal
: The internal authentication backend.rabbit_access_control
: The module responsible for enforcing access control rules.- Network listeners (e.g.,
rabbit_amqp_connection
for AMQP connections).
- Risk Severity: Critical
- Mitigation Strategies:
- Strong Authentication: Enforce strong, unique passwords or, preferably, use client-side certificate authentication (mutual TLS).
- Disable Default User: Delete or change the password of the default
guest
user immediately after installation. - Virtual Hosts (vhosts): Use vhosts to isolate different applications and limit the scope of access.
- Firewall Rules: Restrict network access to the RabbitMQ ports (5672, 15672) to only authorized clients.
-
Threat: Denial of Service via Connection Exhaustion (DoS)
- Description: An attacker opens a large number of connections to the RabbitMQ broker, exhausting available resources (file descriptors, memory) and preventing legitimate clients from connecting.
- Impact:
- Service unavailability.
- Potential for cascading failures if other systems depend on RabbitMQ.
- Affected Component:
rabbit_networking
: The core networking module.rabbit_listener
: The component that manages listeners for different protocols.- Operating system resources (file descriptors, sockets).
- Risk Severity: High
- Mitigation Strategies:
- Connection Limits: Configure maximum connection limits per user, vhost, and globally.
- Firewall Rules: Limit the number of connections from a single IP address.
- Resource Monitoring: Monitor connection counts and resource usage to detect and respond to attacks.
-
Threat: Denial of Service via Message Flooding (DoS)
- Description: An attacker publishes a large volume of messages to a queue or exchange, overwhelming the broker's resources (memory, disk space) and causing it to become unresponsive.
- Impact:
- Service unavailability.
- Data loss (if messages are not durable and the broker crashes).
- Disk space exhaustion.
- Affected Component:
rabbit_queue
: The queue component.rabbit_exchange
: The exchange component.- Memory management (
rabbit_memory_monitor
). - Disk space management.
- Risk Severity: High
- Mitigation Strategies:
- Queue Length Limits: Set maximum queue lengths and define policies for handling overflow (reject, drop, dead-letter).
- Message TTL (Time-To-Live): Set TTLs for messages to automatically expire old messages.
- Resource Monitoring: Monitor queue lengths, memory usage, and disk space.
-
Threat: Information Disclosure via Management Interface (Information Disclosure)
- Description: An attacker gains unauthorized access to the RabbitMQ management interface, exposing sensitive information about the broker's configuration, queues, exchanges, connections, and users.
- Impact:
- Exposure of sensitive configuration details (e.g., credentials, vhost settings).
- Leakage of message metadata (e.g., routing keys, queue names).
- Potential for reconnaissance and further attacks.
- Affected Component:
rabbitmq_management
: The management plugin.rabbitmq_management_agent
: The agent that handles management requests.- HTTP server (used by the management interface).
- Risk Severity: High
- Mitigation Strategies:
- Secure Management Interface: Use strong authentication (username/password, or preferably, client certificates) for the management interface.
- Restrict Access: Limit access to the management interface to specific IP addresses or networks.
- Disable Unnecessary Features: Disable any management features that are not required.
- HTTPS: Use HTTPS for the management interface to encrypt communication.
-
Threat: Exploitation of Vulnerabilities in RabbitMQ (Elevation of Privilege)
- Description: An attacker exploits a known or unknown vulnerability in the RabbitMQ server code or its dependencies to gain elevated privileges, potentially leading to full system compromise.
- Impact:
- Complete system compromise.
- Data theft.
- Data destruction.
- Installation of malware.
- Affected Component:
- Potentially any component of RabbitMQ, depending on the vulnerability. This could include core modules, plugins, or external libraries.
- Risk Severity: Critical
- Mitigation Strategies:
- Keep RabbitMQ Updated: Regularly update RabbitMQ to the latest stable version to patch known vulnerabilities.
- Run as Non-Root: Run RabbitMQ as a dedicated, non-privileged user.
- Harden Host System: Secure the underlying operating system.
- Vulnerability Scanning: Regularly scan the RabbitMQ server and its dependencies for vulnerabilities.