mediumCVSS 5.9Vulnerability

CVE-2026-55856

### Summary When a Java application connects with sslMode=verify-full (or verify-ca) and a password but does not pin a server certificate, Connector/J deliberately accepts an untrusted/self-signed certificate at the TLS layer (the "MITM-proof without a CA" feature) and proves the server's identity afterwards by binding the certificate fingerprint into the authentication exchange. That fingerprint enforcement is applied to the OK-packet and auth-switch paths but not to the initial-handshake path. An active man-in-the-middle that presents a self-signed certificate, claims to be MariaDB, and names the initial authentication plugin mysql_clear_password receives the victim's database password in cleartext, before any fingerprint/identity check runs. The connection is torn down a moment later, but the credential is already gone. ### Details For sslMode=verify-full/verify-ca with a password and no serverSslCert/trustStore, the connector falls back to an ephemeral trust manager (default fallbackToSystemTrustStore=true) that accepts any non-expired certificate at the TLS layer and records its fingerprint. Identity is then meant to be enforced via that fingerprint. The enforcement guard is present on two of the three paths, the OK-packet fingerprint check and the auth-switch handler (where the clear-password plugin is only allowed when the fingerprint is already verified). It is absent on the initial-handshake send: HandshakeResponse.encode() builds the mysql_clear_password response after checking only that SSL is enabled, never consulting the recorded fingerprint, sslMode, or whether the plugin is MITM-proof. By that point the connector already knows the certificate was self-signed. The clear-password plugin does not declare itself MITM-proof (it inherits the safe default), which confirms it is meant to be refused on an unverified certificate; the initial-handshake path simply never consults that flag. The initial path also bypasses restrictedAuth. ### Impact An active

Properties

ghsa_id
GHSA-g9jj-cgmh-9f38
severity
medium
summary
MariaDB has cleartext password disclosure to a MITM on the initial-handshake
cvss_score
5.9
cve_id
CVE-2026-55856
cvss_vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
is_ghsa_only
false
ghsa_published
2026-08-28T22:41:56Z
source_url
https://github.com/advisories/GHSA-g9jj-cgmh-9f38
ghsa_updated
2026-08-28T22:41:57Z

Related Entities (4)

VULNERABLE_TO (1)

[Software]maven/org.mariadb.jdbc:mariadb-java-client

AFFECTS (1)

[Software]maven/org.mariadb.jdbc:mariadb-java-client

HAS_WEAKNESS (1)

[Weakness]Insufficiently Protected Credentials

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-55856 (CVSS 5.9) — Ninja Signal Threat Intelligence | Ninja Signal