CVE-2018-15719
📋 TL;DR
Open Dental versions before 18.4 install MySQL with default credentials (root/blank password), allowing network-accessible attackers to access all database information. This affects Open Dental installations on networks where the database server is reachable.
💻 Affected Systems
- Open Dental
📦 What is this software?
Opendental by Opendental
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise including patient records, financial data, and administrative credentials leading to data theft, ransomware, or system takeover.
Likely Case
Unauthorized access to sensitive patient health information (PHI) and practice management data, violating HIPAA and other regulations.
If Mitigated
Limited impact if database is isolated from network access or strong network segmentation is in place.
🎯 Exploit Status
Exploitation requires only network access to MySQL port (3306) and default credentials. No authentication bypass needed.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 18.4 and later
Vendor Advisory: https://www.opendental.com/
Restart Required: Yes
Instructions:
1. Backup database and configuration. 2. Upgrade Open Dental to version 18.4 or later. 3. Verify MySQL credentials are changed from defaults. 4. Restart services.
🔧 Temporary Workarounds
Change MySQL root password
allSet strong password for MySQL root account
mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword123!';"
mysql -u root -e "FLUSH PRIVILEGES;"
Restrict MySQL network access
allConfigure MySQL to only accept local connections
Edit my.cnf/my.ini: bind-address = 127.0.0.1
Restart MySQL service
🧯 If You Can't Patch
- Implement strict network segmentation to isolate database server from untrusted networks
- Deploy firewall rules to block external access to MySQL port (3306)
🔍 How to Verify
Check if Vulnerable:
Attempt to connect to MySQL on port 3306 using credentials root with blank password: mysql -h [IP] -u root
Check Version:
Check Open Dental version in application interface or configuration files
Verify Fix Applied:
Verify connection fails with blank password and requires authentication. Check Open Dental version is 18.4+.
📡 Detection & Monitoring
Log Indicators:
- Failed authentication attempts to MySQL root account
- Successful root logins from unexpected IPs
- Unusual database queries or access patterns
Network Indicators:
- External connections to MySQL port 3306
- Traffic patterns suggesting database enumeration
SIEM Query:
source="mysql.log" (event="Access denied" OR event="Connect") user="root"