CVE-2025-30696

4.9 MEDIUM

📋 TL;DR

This vulnerability in Oracle MySQL Server's Prepared Statements component allows high-privileged attackers with network access to cause a denial of service by crashing or hanging the MySQL server. It affects MySQL Server versions 8.0.0-8.0.41, 8.4.0-8.4.4, and 9.0.0-9.2.0. Only attackers with administrative database privileges can exploit this vulnerability.

💻 Affected Systems

Products:
  • Oracle MySQL Server
Versions: 8.0.0-8.0.41, 8.4.0-8.4.4, 9.0.0-9.2.0
Operating Systems: All platforms running affected MySQL versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires attacker to have high privileges (CREATE USER, PROCESS, SUPER, or SYSTEM_VARIABLES_ADMIN).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete unavailability of MySQL service causing application downtime and data inaccessibility until service restart.

🟠

Likely Case

Service disruption requiring manual restart of MySQL server, potentially causing brief application downtime.

🟢

If Mitigated

Minimal impact if proper privilege separation and network segmentation are implemented.

🌐 Internet-Facing: MEDIUM - Requires high-privileged attacker credentials but network access is available.
🏢 Internal Only: MEDIUM - Internal attackers with admin credentials could disrupt critical database services.

🎯 Exploit Status

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

Oracle describes as 'easily exploitable' but requires high-privileged attacker credentials.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Apply Critical Patch Update for April 2025 or later

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

Restart Required: Yes

Instructions:

1. Download latest MySQL patch from Oracle. 2. Backup databases. 3. Stop MySQL service. 4. Apply patch. 5. Restart MySQL service. 6. Verify version with 'SELECT VERSION();'

🔧 Temporary Workarounds

Restrict administrative privileges

all

Limit high-privilege accounts to only necessary users and implement principle of least privilege.

REVOKE SUPER, PROCESS, CREATE USER, SYSTEM_VARIABLES_ADMIN FROM 'username'@'host';

Network segmentation

linux

Restrict network access to MySQL servers to only authorized application servers and management systems.

iptables -A INPUT -p tcp --dport 3306 -s trusted_ip -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

🧯 If You Can't Patch

  • Implement strict network access controls to limit who can connect to MySQL servers
  • Regularly monitor MySQL logs for crash events and implement automated alerting for service disruptions

🔍 How to Verify

Check if Vulnerable:

Run 'SELECT VERSION();' in MySQL and check if version falls within affected ranges.

Check Version:

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

Verify Fix Applied:

Verify version is outside affected ranges after patching and test prepared statement functionality.

📡 Detection & Monitoring

Log Indicators:

  • MySQL crash logs
  • Unexpected service restarts in system logs
  • Error logs showing prepared statement failures

Network Indicators:

  • Multiple failed connection attempts from single source followed by service disruption
  • Unusual prepared statement traffic patterns

SIEM Query:

source="mysql.log" ("crash" OR "segmentation fault" OR "aborted") AND ("prepared" OR "PS")

🔗 References

📤 Share & Export