CVE-2019-13455
📋 TL;DR
CVE-2019-13455 is a critical stack-based buffer overflow vulnerability in Xymon's alert acknowledgment CGI tool. Attackers can exploit this by sending specially crafted HTTP requests containing HTML entities, potentially leading to remote code execution. All Xymon installations through version 4.3.28 are affected.
💻 Affected Systems
- Xymon (formerly Hobbit)
📦 What is this software?
Xymon by Xymon
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution with the privileges of the Xymon web server process, potentially leading to complete system compromise.
Likely Case
Denial of service through application crash, with potential for remote code execution in targeted attacks.
If Mitigated
Limited impact if proper network segmentation and least privilege principles are applied to the Xymon service.
🎯 Exploit Status
The vulnerability is in a CGI script accessible via HTTP, making exploitation straightforward. Public exploit code and technical details are available in security advisories.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 4.3.29 and later
Vendor Advisory: https://lists.xymon.com/archive/2019-July/046570.html
Restart Required: Yes
Instructions:
1. Download Xymon 4.3.29 or later from the official repository. 2. Replace the vulnerable acknowledge.c file in the web directory. 3. Recompile and restart the Xymon web service. 4. Verify the fix by checking the version and testing the acknowledgment functionality.
🔧 Temporary Workarounds
Disable CGI Script Access
linuxTemporarily disable access to the vulnerable acknowledge.cgi script via web server configuration.
# For Apache: Add to httpd.conf or .htaccess
<Location "/xymon/cgi-bin/acknowledge.cgi">
Deny from all
</Location>
# For Nginx: Add to server block
location /xymon/cgi-bin/acknowledge.cgi {
deny all;
}
Network Access Control
linuxRestrict network access to the Xymon web interface using firewall rules.
# iptables example to restrict to internal network
sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
🧯 If You Can't Patch
- Implement strict network segmentation to isolate Xymon servers from untrusted networks.
- Run Xymon web service with minimal privileges using a dedicated, non-root user account.
🔍 How to Verify
Check if Vulnerable:
Check if Xymon version is 4.3.28 or earlier and if the acknowledge.cgi script exists in the web interface directory.
Check Version:
xymon --version 2>/dev/null || grep 'XYMONVERSION' /etc/xymon/xymonclient.cfg 2>/dev/null || cat /usr/lib/xymon/server/include/version.h 2>/dev/null | grep XYMONVERSION
Verify Fix Applied:
Verify Xymon version is 4.3.29 or later and test the acknowledgment functionality with HTML entity inputs.
📡 Detection & Monitoring
Log Indicators:
- Multiple failed acknowledgment attempts with unusual parameters
- Web server logs showing requests to acknowledge.cgi with encoded characters
- Xymon process crashes or abnormal termination
Network Indicators:
- HTTP requests to /xymon/cgi-bin/acknowledge.cgi containing or other HTML entities
- Unusual traffic patterns to the Xymon web port
SIEM Query:
source="xymon.log" AND (uri="/cgi-bin/acknowledge.cgi" AND (param CONTAINS " " OR param CONTAINS "%26"))
🔗 References
- https://github.com/svn2github/xymon/blob/master/branches/4.3.28/web/acknowledge.c
- https://lists.debian.org/debian-lts-announce/2019/08/msg00032.html
- https://lists.xymon.com/archive/2019-July/046570.html
- https://github.com/svn2github/xymon/blob/master/branches/4.3.28/web/acknowledge.c
- https://lists.debian.org/debian-lts-announce/2019/08/msg00032.html
- https://lists.xymon.com/archive/2019-July/046570.html