Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-21518

CVE-2025-21518: Oracle MySQL Cluster DoS Vulnerability

CVE-2025-21518 is a denial of service flaw in Oracle MySQL Cluster's Server Optimizer component that allows low-privileged attackers to crash the server. This article covers technical details, affected versions, and mitigation.

Updated:

CVE-2025-21518 Overview

CVE-2025-21518 is a Denial of Service vulnerability in the MySQL Server product of Oracle MySQL, specifically affecting the Server: Optimizer component. This vulnerability allows a low privileged attacker with network access to cause a complete denial of service condition, resulting in a hang or frequently repeatable crash of MySQL Server.

The flaw is classified under CWE-770 (Allocation of Resources Without Limits or Throttling), indicating that the vulnerability stems from improper resource management within the query optimizer. Attackers can exploit this weakness via multiple network protocols, making it easily exploitable by authenticated users with minimal privileges.

Critical Impact

Successful exploitation enables attackers to completely disrupt MySQL Server availability, causing service outages that can impact dependent applications and business operations.

Affected Products

  • Oracle MySQL Server 8.0.40 and prior versions
  • Oracle MySQL Server 8.4.3 and prior versions
  • Oracle MySQL Server 9.1.0 and prior versions
  • Oracle MySQL Cluster (multiple affected versions)

Discovery Timeline

  • 2025-01-21 - CVE-2025-21518 published to NVD
  • 2025-01-21 - Oracle releases security patch in Critical Patch Update January 2025
  • 2025-11-03 - Last updated in NVD database

Technical Details for CVE-2025-21518

Vulnerability Analysis

This vulnerability resides in the Server: Optimizer component of MySQL Server. The optimizer is responsible for determining the most efficient execution plan for SQL queries. When malformed or specially crafted queries are submitted, the optimizer fails to properly limit resource allocation during query processing.

The vulnerability is easily exploitable and requires only low-level privileges, meaning any authenticated database user with basic query execution capabilities can trigger the flaw. The attack does not require user interaction and can be executed remotely over the network via multiple protocols supported by MySQL.

The impact is limited to availability—there is no confidentiality or integrity impact. However, the ability to cause a complete denial of service can be devastating for production database environments where uptime is critical.

Root Cause

The root cause is CWE-770: Allocation of Resources Without Limits or Throttling. The MySQL Server Optimizer component fails to properly constrain resource consumption when processing certain query patterns. This allows an attacker to exhaust server resources, leading to service unavailability.

The optimizer's handling of specific query structures does not include adequate bounds checking or resource limits, enabling resource exhaustion attacks that can crash the server or cause it to hang indefinitely.

Attack Vector

The attack vector is network-based, allowing exploitation from remote locations. An attacker needs:

  1. Network connectivity to the MySQL Server
  2. Valid credentials with low-level database privileges
  3. Ability to execute queries against the database

The attacker can submit specially crafted SQL queries that trigger the vulnerable code path in the optimizer. These queries cause the server to consume excessive resources without proper limits, ultimately resulting in a denial of service condition. The attack can be repeated to maintain service disruption or triggered during critical business operations for maximum impact.

Since multiple protocols are affected, attackers may use standard MySQL client connections, JDBC/ODBC drivers, or other MySQL-compatible interfaces to deliver the malicious queries.

Detection Methods for CVE-2025-21518

Indicators of Compromise

  • Unusual spikes in MySQL Server CPU or memory utilization without corresponding increase in legitimate workload
  • Repeated MySQL Server crashes or unexpected service restarts in error logs
  • Query execution patterns showing abnormally long-running optimizer phases
  • Connection timeouts and client errors indicating server unavailability

Detection Strategies

  • Monitor MySQL error logs for optimizer-related crashes and exceptions
  • Implement query profiling to identify anomalous query patterns targeting the optimizer
  • Configure performance schema monitoring to track resource consumption spikes
  • Deploy database activity monitoring (DAM) solutions to detect suspicious query behavior
  • Review slow query logs for queries with unusual execution plans

Monitoring Recommendations

  • Enable MySQL Performance Schema and monitor events_stages_* tables for optimizer anomalies
  • Set up alerts for MySQL service availability and automatic restart events
  • Configure resource usage thresholds for CPU, memory, and connection counts
  • Implement network-level monitoring for unusual connection patterns to MySQL ports

How to Mitigate CVE-2025-21518

Immediate Actions Required

  • Apply the Oracle Critical Patch Update January 2025 to all affected MySQL Server instances
  • Upgrade MySQL Server to the latest patched version (post-8.0.40, post-8.4.3, or post-9.1.0)
  • Review and restrict database user privileges to minimize attack surface
  • Implement network segmentation to limit exposure of MySQL servers
  • Enable query timeouts and resource limits as temporary protective measures

Patch Information

Oracle has released patches for this vulnerability as part of the Oracle Critical Patch Update January 2025. Organizations should consult the advisory for specific patch instructions and version upgrade paths.

Additional security guidance is available from NetApp Security Advisory NTAP-20250131-0004 for environments using NetApp storage solutions with MySQL.

Workarounds

  • Implement strict network access controls to limit MySQL Server exposure to trusted networks only
  • Review and revoke unnecessary database user accounts and privileges
  • Configure max_execution_time system variable to limit query execution duration
  • Use MySQL Enterprise Firewall or similar solutions to filter malicious query patterns
  • Deploy a database proxy or load balancer with query inspection capabilities to filter suspicious requests
bash
# Configuration example - Set query execution limits in MySQL
# Add to my.cnf or my.ini configuration file
[mysqld]
max_execution_time=30000
max_connections=100
interactive_timeout=300
wait_timeout=300

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.