CVE-2019-11287
📋 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
- Pivotal RabbitMQ
- RabbitMQ for Pivotal Platform
📦 What is this software?
Fedora by Fedoraproject
Fedora by Fedoraproject
Openstack by Redhat
Rabbitmq by Pivotal Software
Rabbitmq by Pivotal Software
Rabbitmq by Pivotal 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.
🎯 Exploit Status
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
linuxTemporarily disable the vulnerable web management plugin to prevent exploitation while planning upgrade.
rabbitmq-plugins disable rabbitmq_management
Restrict Network Access
linuxUse 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
- https://access.redhat.com/errata/RHSA-2020:0078
- https://github.com/DrunkenShells/Disclosures/tree/master/CVE-2019-11287-DoS%20via%20Heap%20Overflow-RabbitMQ%20Web%20Management%20Plugin
- https://lists.debian.org/debian-lts-announce/2021/07/msg00011.html
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/EEQ6O7PMNJKYFMQYHAB55L423GYK63SO/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/PYTGR3D5FW2O25RXZOTIZMOD2HAUVBE4/
- https://pivotal.io/security/cve-2019-11287
- https://access.redhat.com/errata/RHSA-2020:0078
- https://github.com/DrunkenShells/Disclosures/tree/master/CVE-2019-11287-DoS%20via%20Heap%20Overflow-RabbitMQ%20Web%20Management%20Plugin
- https://lists.debian.org/debian-lts-announce/2021/07/msg00011.html
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/EEQ6O7PMNJKYFMQYHAB55L423GYK63SO/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/PYTGR3D5FW2O25RXZOTIZMOD2HAUVBE4/
- https://pivotal.io/security/cve-2019-11287