CVE-2021-32920
📋 TL;DR
CVE-2021-32920 is a denial-of-service vulnerability in Prosody XMPP server where an attacker can cause uncontrolled CPU consumption by flooding the server with SSL/TLS renegotiation requests. This affects Prosody servers running vulnerable versions, potentially making them unresponsive to legitimate users.
💻 Affected Systems
- Prosody XMPP Server
📦 What is this software?
Fedora by Fedoraproject
Fedora by Fedoraproject
Fedora by Fedoraproject
Prosody by Prosody
⚠️ Risk & Real-World Impact
Worst Case
Complete service outage where the Prosody server becomes unresponsive due to 100% CPU utilization, disrupting all XMPP communications for users.
Likely Case
Degraded server performance causing connection timeouts, message delays, and intermittent service disruptions for XMPP clients.
If Mitigated
Minimal impact with proper rate limiting and network controls in place to limit connection attempts.
🎯 Exploit Status
Exploitation requires only the ability to establish SSL/TLS connections to the server. Attack tools for SSL/TLS renegotiation floods are publicly available.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 0.11.9
Vendor Advisory: https://blog.prosody.im/prosody-0.11.9-released/
Restart Required: Yes
Instructions:
1. Backup current configuration. 2. Stop Prosody service. 3. Update Prosody to version 0.11.9 or later using your package manager (apt-get upgrade prosody, yum update prosody, etc.). 4. Start Prosody service. 5. Verify version with 'prosodyctl about'.
🔧 Temporary Workarounds
Rate Limit SSL/TLS Connections
linuxImplement connection rate limiting at network level to reduce impact of flood attacks
iptables -A INPUT -p tcp --dport 5222 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 5222 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP
Disable SSL/TLS Renegotiation
allConfigure Prosody to disable SSL/TLS renegotiation if not required
Add 'ssl_renegotiation = false' to prosody.cfg.lua configuration file
🧯 If You Can't Patch
- Implement network-level rate limiting for port 5222 (XMPP) and 5269 (server-to-server)
- Use a reverse proxy or load balancer with SSL termination and DDoS protection capabilities
🔍 How to Verify
Check if Vulnerable:
Check Prosody version with 'prosodyctl about' or 'prosody --version'. If version is below 0.11.9, system is vulnerable.
Check Version:
prosodyctl about | grep 'Prosody'
Verify Fix Applied:
Run 'prosodyctl about' and confirm version is 0.11.9 or higher. Monitor CPU usage during normal operation.
📡 Detection & Monitoring
Log Indicators:
- High frequency of SSL/TLS handshake messages in logs
- CPU usage spikes in system logs
- Connection timeouts and errors in XMPP client logs
Network Indicators:
- Unusual high volume of SSL/TLS handshake packets to port 5222/5269
- Multiple rapid SSL/TLS renegotiation requests from single IPs
SIEM Query:
source="prosody.log" AND ("SSL handshake" OR "TLS handshake") | stats count by src_ip | where count > 100
🔗 References
- http://www.openwall.com/lists/oss-security/2021/05/13/1
- http://www.openwall.com/lists/oss-security/2021/05/14/2
- https://blog.prosody.im/prosody-0.11.9-released/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/6MFFBZWXKPZEVZNQSVJNCUE7WRF3T7DG/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/GUN63AHEWB2WRROJHU3BVJRWLONCT2B7/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/LWJ2DG2DFJOEFEWOUN26IMYYWGSA2ZEE/
- https://security.gentoo.org/glsa/202105-15
- https://www.debian.org/security/2021/dsa-4916
- http://www.openwall.com/lists/oss-security/2021/05/13/1
- http://www.openwall.com/lists/oss-security/2021/05/14/2
- https://blog.prosody.im/prosody-0.11.9-released/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/6MFFBZWXKPZEVZNQSVJNCUE7WRF3T7DG/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/GUN63AHEWB2WRROJHU3BVJRWLONCT2B7/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/LWJ2DG2DFJOEFEWOUN26IMYYWGSA2ZEE/
- https://security.gentoo.org/glsa/202105-15
- https://www.debian.org/security/2021/dsa-4916