CVE-2015-2079
📋 TL;DR
This vulnerability allows remote attackers to execute arbitrary code on Usermin servers by exploiting improper input validation in the uconfig_save.cgi script. The issue stems from using the two-argument form of Perl's open() function, which doesn't properly sanitize user input. All Usermin installations from version 0.980 through 1.659 are affected.
💻 Affected Systems
- Usermin
📦 What is this software?
Usermin by Webmin
⚠️ Risk & Real-World Impact
Worst Case
Full system compromise with attacker gaining root privileges, data exfiltration, and persistent backdoor installation.
Likely Case
Remote code execution with the privileges of the Usermin process, potentially leading to web server compromise and lateral movement.
If Mitigated
Limited impact if proper network segmentation and least privilege principles are applied, though RCE would still be possible.
🎯 Exploit Status
Public exploit code is available and the vulnerability is trivial to exploit with basic web request manipulation.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.660 and later
Vendor Advisory: http://www.webmin.com/security.html
Restart Required: No
Instructions:
1. Download Usermin 1.660 or later from http://www.webmin.com/download.html
2. Stop Usermin service
3. Install the update
4. Start Usermin service
🔧 Temporary Workarounds
Disable vulnerable CGI script
linuxTemporarily disable or remove the uconfig_save.cgi script to prevent exploitation
mv /usr/share/usermin/uconfig_save.cgi /usr/share/usermin/uconfig_save.cgi.disabled
Network access control
linuxRestrict access to Usermin web interface using firewall rules
iptables -A INPUT -p tcp --dport 20000 -s trusted_ip -j ACCEPT
iptables -A INPUT -p tcp --dport 20000 -j DROP
🧯 If You Can't Patch
- Implement strict network segmentation to isolate Usermin servers from critical systems
- Deploy web application firewall (WAF) rules to block exploitation attempts targeting the vulnerable endpoint
🔍 How to Verify
Check if Vulnerable:
Check Usermin version via web interface or configuration files. Versions 0.980 through 1.659 are vulnerable.
Check Version:
grep version= /etc/usermin/miniserv.conf | cut -d= -f2
Verify Fix Applied:
Verify Usermin version is 1.660 or higher and test that uconfig_save.cgi no longer accepts malicious input.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to /uconfig_save.cgi
- Suspicious command execution patterns in system logs
- Multiple failed exploitation attempts
Network Indicators:
- HTTP requests to uconfig_save.cgi with pipe characters or shell metacharacters in parameters
- Unusual outbound connections from Usermin server
SIEM Query:
source="usermin_access.log" AND uri="/uconfig_save.cgi" AND (param="|*" OR param="*|")