CVE-2019-11287

7.5 HIGH

📋 TL;DR

This vulnerability allows attackers to cause a denial of service (DoS) in RabbitMQ's web management plugin by sending specially crafted HTTP requests with malicious Erlang format strings in the 'X-Reason' header. The format string expansion consumes excessive heap memory, causing the server to crash. Organizations running vulnerable versions of RabbitMQ with the web management plugin enabled are affected.

💻 Affected Systems

Products:
  • Pivotal RabbitMQ
  • RabbitMQ for Pivotal Platform
Versions: RabbitMQ 3.7.x prior to 3.7.21, 3.8.x prior to 3.8.1; Pivotal Platform 1.16.x prior to 1.16.7, 1.17.x prior to 1.17.4
Operating Systems: All platforms running affected RabbitMQ versions
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with the web management plugin enabled (default in many installations). The management UI port (typically 15672) must be accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service outage of RabbitMQ, disrupting message queue operations and dependent applications until manual restart.

🟠

Likely Case

Intermittent service disruptions and degraded performance due to repeated crashes, requiring administrative intervention.

🟢

If Mitigated

Minimal impact if web management interface is not exposed to untrusted networks and proper network segmentation is in place.

🌐 Internet-Facing: HIGH - The web management plugin is often exposed for administration, making internet-facing instances particularly vulnerable to DoS attacks.
🏢 Internal Only: MEDIUM - Internal attackers or compromised internal systems could still exploit this to disrupt messaging services.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires no authentication and uses simple HTTP requests. Public proof-of-concept code demonstrates the attack.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: RabbitMQ 3.7.21, 3.8.1; Pivotal Platform 1.16.7, 1.17.4

Vendor Advisory: https://access.redhat.com/errata/RHSA-2020:0078

Restart Required: Yes

Instructions:

1. Backup RabbitMQ configuration and data. 2. Stop RabbitMQ service. 3. Upgrade to patched version using package manager (apt/yum) or manual installation. 4. Restart RabbitMQ service. 5. Verify service is running and management interface is accessible.

🔧 Temporary Workarounds

Disable Web Management Plugin

linux

Temporarily disable the vulnerable web management plugin to prevent exploitation while planning upgrade.

rabbitmq-plugins disable rabbitmq_management

Restrict Network Access

linux

Use firewall rules to restrict access to RabbitMQ management port (default 15672) to trusted IPs only.

iptables -A INPUT -p tcp --dport 15672 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 15672 -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate RabbitMQ management interface from untrusted networks.
  • Deploy a web application firewall (WAF) or reverse proxy with request filtering to block malicious X-Reason headers.

🔍 How to Verify

Check if Vulnerable:

Check RabbitMQ version and verify it's within affected ranges: rabbitmqctl status | grep 'RabbitMQ version'

Check Version:

rabbitmqctl status | grep -oP '(?<=RabbitMQ version: )\d+\.\d+\.\d+'

Verify Fix Applied:

Confirm version is 3.7.21+, 3.8.1+, or corresponding Pivotal Platform versions. Test by attempting to send a crafted request with X-Reason header to management port and verify no crash occurs.

📡 Detection & Monitoring

Log Indicators:

  • RabbitMQ crash logs with heap exhaustion errors
  • Repeated restarts of rabbitmq-server service
  • HTTP requests containing 'X-Reason' header with unusual format strings in access logs

Network Indicators:

  • Unusual volume of HTTP POST/GET requests to port 15672
  • Requests with X-Reason header containing Erlang format specifiers like ~p, ~s

SIEM Query:

source="rabbitmq.log" AND ("crash" OR "heap" OR "out of memory") OR (http_user_agent="*" AND http_request_header="X-Reason: ~*")

🔗 References

📤 Share & Export