Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain MITM network position between app and DB
-
DeliveryPresent trusted cert valid for a different hostname
-
ExploitClient fails to reject hostname mismatch
-
ExecutionTrigger auth switch to mysql_clear_password
-
ImpactCapture cleartext database password
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate host validation
|
| Exploitation Conditions | Exploitation requires ALL of the following concrete conditions: (1) the client uses MariaDB Connector/C libmariadb version 3.4.1 through 3.4.9 in Zero-Configuration SSL mode - i.e. no ssl_ca, ssl_capath, ssl_crl, ssl_crlpath, or TLS fingerprint (tls_fp / tls_fp_list) is configured, which is precisely the set of options the fix now checks; (2) the attacker holds a certificate that passes CA trust validation but is issued for a hostname other than the target server; (3) the attacker occupies an active man-in-the-middle position on the TLS path; and (4) the connection undergoes an authentication-plugin switch so the attacker can request the non-hashing mysql_clear_password plugin. Limiting factors that reduce realistic risk: the active-MITM requirement, the need for a validly-trusted certificate for an unrelated hostname, and the dependence on the zero-config SSL path (deployments that explicitly pin a CA, CRL, or fingerprint are not affected). Non-local connections only - the fix exempts localhost/127.0.0.1/::1 from hostname verification. |
| Impact | This is a genuine but conditional credential-disclosure flaw (CWE-297, improper host mismatch validation), best characterized as moderate rather than urgent. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N = 5.9) is internally consistent with the description: network-reachable (AV:N), no privileges needed by the attacker (PR:N), no victim interaction (UI:N), but high complexity (AC:H) because exploitation requires an active man-in-the-middle position AND a certificate that is valid for some other hostname, plus the victim running in Zero-Configuration SSL mode. Impact is confidentiality-only (C:H / I:N / A:N) - the leaked cleartext database password. Exploitation status: no public exploit identified at time of analysis - the only GitHub source code is the remediation commit (e8c0a16), NOT weaponized exploit code, so POC availability should not be counted. No CISA KEV listing and no EPSS score were provided in the input, so real-world exploitation frequency cannot be quantified from these signals; the AC:H MITM precondition strongly suggests any real abuse would be targeted, not opportunistic or wormable. Net: a real issue worth patching on the normal cycle, not a drop-everything emergency, absent evidence of active exploitation. |
| Exploit ScenarioDerived | An attacker who has achieved a man-in-the-middle position on the network path between an application and its MariaDB/MySQL server, and who holds a certificate that chains to a trusted CA but is issued for a different hostname, intercepts a client connection running in Zero-Configuration SSL mode. Because the libmariadb auth-switch logic validates certificate trust but fails to reject the TLS hostname mismatch before choosing a non-hashing plugin, the attacker requests mysql_clear_password and the client transmits the cleartext database password inside the attacker-controlled TLS tunnel. No public exploit exists; the mechanism is documented only by the vendor fix commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
Credential disclosure in MariaDB Connector/C (libmariadb) 3.4.1 through 3.4.9 lets an active man-in-the-middle attacker who holds a validly-trusted certificate issued for a different hostname capture the cleartext database password: the library checked certificate trust, but failed to reject a TLS hostname mismatch before proceeding with a non-hashing authentication plugin switch, allowing the attacker to request mysql_clear_password over the attacker-controlled TLS session. Exploitation requires the client to run in Zero-Configuration SSL mode (no ssl_ca, ssl_capath, ssl_crl, ssl_crlpath, tls_fp, or tls_fp_list configured) on a non-local connection, plus a MITM position and a trusted-but-wrong-hostname certificate, so this is a genuine but conditional CWE-297 flaw rated moderate rather than urgent (CVSS 5.9, AC:H); no public exploit identified at time of analysis. It is fixed in version 3.4.10, and other MariaDB connectors are not affected.
RemediationAI
Vendor-released patch: upgrade MariaDB Connector/C to version 3.4.10 or later (https://github.com/mariadb-corporation/mariadb-connector-c/releases/tag/v3.4.10), which is the fix released via GHSA-fmq9-qjxj-qpf7 and CONC-846; because libmariadb is usually statically or dynamically embedded, rebuild and redeploy every application that ships the connector, including bundled copies in language drivers, ORMs, and container base images, and confirm the shipped libmariadb version rather than the vendor of the wrapping application. Until the upgrade can be scheduled, the most direct compensating control is to leave the Zero-Configuration SSL path, which the patched code no longer treats as zero-config once any of ssl_ca, ssl_capath, ssl_crl, ssl_crlpath, tls_fp, or tls_fp_list is set: explicitly supplying a CA bundle (ssl_ca/ssl_capath) or pinning a server certificate fingerprint (tls_fp/tls_fp_list) causes the client to reject the mismatched-hostname certificate before the authentication switch can occur, at the cost of additional configuration management and certificate/fingerprint rotation work when the server certificate changes. Connections that terminate on localhost, 127.0.0.1, or ::1 are exempt from hostname verification and are not exposed to this path, so routing client traffic over a local Unix domain socket or loopback removes the attack surface, with the trade-off that it only works for same-host deployments. Operators who cannot meet either condition should restrict database exposure to trusted, non-observable network segments and use a TLS termination point they control, since disabling TLS entirely is not a recommended mitigation for a remote database connection.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-297, improper validation of a certificate with a host mismatch, in the Zero-Configuration SSL path of libmariadb. The TLS handshake layer (ma_pvio_tls_verify_server_cert in libmariadb/ma_tls.c) recorded trust failures, but the authentication plugin negotiation logic in plugins/auth/my_auth.c only aborted on the MARIADB_TLS_VERIFY_TRUST bit and ignored MARIADB_TLS_VERIFY_HOST; consequently a successful CA-trust check with a mismatched hostname did not stop the connection, and the client accepted an attacker-driven authentication-plugin switch to mysql_clear_password, sending the password in cleartext inside an attacker-terminated TLS session. The upstream fix (commit e8c0a16d94ddf844668d684a7d42b37ac8e0fc02, released as v3.4.10) broadens the abort condition to any tls_verify_status value, expands the zero-config detection to also treat ssl_ca, ssl_capath, ssl_crl and ssl_crlpath as opting out of zero-config mode, applies FIX_SSL_VERIFY_SERVER_CERT at mysql_init, and adds regression tests (including test_auth_switch_hostname_mismatch) that assert the connection fails with CR_SSL_CONNECTION_ERROR and MARIADB_TLS_VERIFY_HOST. Note that the supplied CPE string (cpe:2.3:a:mariadb:server) is a feed mis-mapping: the vulnerable component is the MariaDB Connector/C client library (libmariadb), not MariaDB Server. Per the CVSS:3.1 vector AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N, the attack is remote and requires no authentication or user interaction, but the high attack complexity reflects the need to first achieve a trusted-certificate MITM position.
Know when MariaDB gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
AC:H because an active MITM position plus a trusted cert for another hostname are required; PR:N as the attacker needs no DB credentials; C:H/I:N/A:N since only the cleartext password is disclosed.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
MariaDB Connector/C is a C and C++ client library for connecting applications to MariaDB and MySQL databases. From 3.4.1 until 3.4.10, the MariaDB Connector/C libmariadb Zero-Configuration SSL authentication-switch logic checked certificate trust failure but did not reject a TLS hostname verification mismatch before selecting a non-hashing authentication plugin. An active man-in-the-middle attacker with a valid certificate for another hostname could request mysql_clear_password and obtain the database password inside the attacker-controlled TLS connection. Other MariaDB connectors are not affected. This issue is fixed in version 3.4.10.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Oracle MySQL through 5.5.52, 5.6.x through 5.6.33, and 5.7.x through 5.7.15; MariaDB before 5.5.51, 10.0.x before 10.0.2
MySQL 5.5.19 and possibly other versions, and MariaDB 5.5.28a and possibly other versions, when configured to assign the
The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
sql/password.c in Oracle MySQL 5.1.x before 5.1.63, 5.5.x before 5.5.24, and 5.6.x before 5.6.6, and MariaDB 5.1.x befor
Heap-based buffer overflow in Oracle MySQL 5.5.19 and other versions through 5.5.28, and MariaDB 5.5.28a and possibly ot
Stack-based buffer overflow in the acl_get function in Oracle MySQL 5.5.19 and other versions through 5.5.28, and 5.1.53
The ssl3_send_client_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before
mysqld_safe in Oracle MySQL through 5.5.51, 5.6.x through 5.6.32, and 5.7.x through 5.7.14; MariaDB; Percona Server befo
The dtls1_get_message_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.
Oracle MySQL before 5.7.3, Oracle MySQL Connector/C (aka libmysqlclient) before 6.1.3, and MariaDB before 5.5.44 use the
The BN_mod_sqrt() function, which computes a modular square root, contains a bug that can cause it to loop forever for n
EUVD-2026-95920
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB