CVE-2024-21179

4.9 MEDIUM

📋 TL;DR

This vulnerability in MySQL Server's InnoDB component allows high-privileged attackers with network access to cause a denial of service by crashing or hanging the server. It affects MySQL Server versions 8.0.37 and earlier, and 8.4.0 and earlier. Attackers need administrative database privileges to exploit this vulnerability.

💻 Affected Systems

Products:
  • Oracle MySQL Server
Versions: 8.0.37 and prior, 8.4.0 and prior
Operating Systems: All platforms running affected MySQL versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires attacker to have high privileges (PR:H in CVSS) - typically root/admin database user

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete MySQL Server outage causing application downtime and service disruption

🟠

Likely Case

Targeted DoS attacks against MySQL servers by malicious insiders or compromised admin accounts

🟢

If Mitigated

Limited impact due to proper privilege separation and network segmentation

🌐 Internet-Facing: MEDIUM - Requires admin credentials but network access enables remote exploitation
🏢 Internal Only: HIGH - Insider threats or compromised admin accounts can easily exploit this

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Oracle describes as 'easily exploitable' but requires high privilege credentials

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 8.0.38 and 8.4.1 or later

Vendor Advisory: https://www.oracle.com/security-alerts/cpujul2024.html

Restart Required: Yes

Instructions:

1. Download MySQL 8.0.38+ or 8.4.1+ from Oracle. 2. Backup databases. 3. Stop MySQL service. 4. Install updated version. 5. Restart MySQL service. 6. Verify version with 'SELECT VERSION();'

🔧 Temporary Workarounds

Restrict network access

all

Limit MySQL server network exposure to only trusted hosts

# In my.cnf: bind-address = 127.0.0.1
# Or use firewall: sudo ufw deny 3306/tcp

Principle of least privilege

all

Minimize number of high-privilege accounts and implement strong authentication

REVOKE ALL PRIVILEGES FROM 'admin'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO 'appuser'@'specific-host';

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate MySQL servers from untrusted networks
  • Enforce strong authentication and regularly audit high-privilege database accounts

🔍 How to Verify

Check if Vulnerable:

Connect to MySQL and run: SELECT VERSION(); Check if version is 8.0.37 or earlier, or 8.4.0 or earlier

Check Version:

mysql -u root -p -e 'SELECT VERSION();'

Verify Fix Applied:

After patching, run: SELECT VERSION(); Verify version is 8.0.38+ or 8.4.1+

📡 Detection & Monitoring

Log Indicators:

  • Unexpected MySQL crashes or restarts
  • Multiple failed connection attempts from admin accounts
  • InnoDB error messages in MySQL error log

Network Indicators:

  • Multiple connections from single source to MySQL port 3306 followed by service disruption
  • Unusual traffic patterns to MySQL from admin accounts

SIEM Query:

source="mysql_error.log" AND ("crash" OR "hang" OR "InnoDB error")

🔗 References

📤 Share & Export