CVE-2026-55215
MariaDB Server vulnerability analysis and mitigation

Overview

CVE-2026-55215 is a credential disclosure vulnerability in MariaDB Connector/Node.js where the connector leaks cleartext database passwords to an active man-in-the-middle (MitM) attacker despite SSL/TLS being enabled. When SSL is configured without a pinned CA or server certificate, the connector transmits credentials before completing certificate fingerprint validation, allowing an attacker presenting a self-signed certificate to capture the password during the handshake. Affected versions include all releases before 3.2.4, 3.3.0–3.3.2, 3.4.0–3.4.5, and 3.5.0–3.5.2. It carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory). The vulnerability was published on August 28, 2026, and patches were released the same day (GitHub Advisory).

Technical details

The vulnerability stems from two distinct flaws classified as CWE-295 (Improper Certificate Validation) and CWE-522 (Insufficiently Protected Credentials). In lib/cmd/handshake/auth/handshake.js, when a server selects mysql_clear_password as the initial authentication plugin, the connector sends the password in cleartext before the post-TLS fingerprint validation check executes. In lib/cmd/handshake/authentication.js, during an authentication plugin switch, the guard logic evaluated the previous plugin's permitHash() result rather than the newly requested plugin's, allowing a server to advertise a benign initial plugin and then switch to mysql_clear_password to bypass the check entirely. Additionally, the base PluginAuth class defaulted permitHash() to true, meaning all plugins were treated as hashable unless they explicitly opted out — the fix reverses this to default false (GitHub Commit, GitHub Advisory).

Impact

A successful exploit results in full disclosure of the database account password (high confidentiality impact) to any attacker with an active MitM position on the network path between the Node.js application and the MariaDB/MySQL server. Although the connector ultimately rejects the rogue server and closes the connection, the captured plaintext credential can be used immediately to authenticate directly against the real database server, potentially granting the attacker full access to all data the compromised account can reach. There is no integrity or availability impact from the vulnerability itself, but secondary exploitation using the stolen credential could lead to data exfiltration, modification, or lateral movement within the database environment (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the disclosure date. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog (Feedly). Exploitation requires an active MitM network position — a non-trivial precondition — but no authentication or user interaction is needed once that position is established, and attack complexity is rated Low. The vulnerability was originally reported via HackerOne (report #3777370) by researcher haaahaaahiihiiii (GitHub Advisory).

Exploitation steps

  1. Gain MitM position: Position yourself on the network path between the Node.js application and the MariaDB/MySQL server using ARP spoofing, DNS poisoning, rogue Wi-Fi, or a compromised network device.
  2. Intercept TLS connection: When the application initiates a connection with ssl: true but no pinned CA or server certificate, intercept the TCP stream and present a self-signed TLS certificate to the client.
  3. Advertise vulnerable auth plugin: During the MySQL handshake, respond with mysql_clear_password as the initial authentication plugin (or advertise a benign plugin and then issue an auth-switch request to mysql_clear_password).
  4. Capture cleartext password: Because the connector sends credentials before completing fingerprint validation, the plaintext database password is transmitted to the attacker's rogue server and can be captured from the handshake traffic.
  5. Authenticate to real server: Use the captured plaintext credential to connect directly to the legitimate MariaDB/MySQL server, gaining full database access under the compromised account (GitHub Advisory, GitHub Commit).

Indicators of compromise

  • Network: Unexpected TLS handshakes to the database port (default 3306) from an IP address that is not the legitimate database server; self-signed certificates presented on the database port from unknown hosts.
  • Network: MySQL authentication packets containing mysql_clear_password plugin negotiation observed in network captures on segments where this plugin is not expected.
  • Logs: Application-side connection errors referencing ER_SELF_SIGNED_BAD_PLUGIN or messages such as "Unsupported authentication plugin with Self signed certificates" in Node.js application logs (patched versions only).
  • Database Logs: Successful logins to the MariaDB/MySQL server from unexpected source IP addresses using valid credentials, particularly shortly after a failed/aborted connection attempt from the application server's IP.
  • Network: ARP table anomalies or duplicate MAC addresses on the local network segment hosting the application or database servers, indicating potential ARP spoofing.

Mitigation and workarounds

Upgrade MariaDB Connector/Node.js to one of the patched versions: 3.2.4, 3.3.3, 3.4.6, or 3.5.3 (GitHub Advisory, Release 3.3.3). As an immediate workaround prior to upgrading, explicitly provide the server or CA certificate in the SSL configuration and use a verifying SSL mode such as VERIFY_CA or VERIFY_FULL; this ensures the connector can perform proper certificate chain validation rather than relying on post-handshake fingerprint checking. Alternatively, setting ssl: { rejectUnauthorized: false } (trust mode) prevents the vulnerable fingerprint-validation code path from being triggered, though this removes server identity verification entirely and should only be used in isolated, trusted network environments.

Additional resources


SourceThis report was generated using AI

Related MariaDB Server vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-55215HIGH7.5
  • MariaDB Server logoMariaDB Server
  • cpe:2.3:a:mariadb:mariadb
NoYesAug 28, 2026
CVE-2026-48165HIGH7.2
  • MariaDB Server logoMariaDB Server
  • mariadb:10.11::mariadb-pam
NoYesJun 12, 2026
CVE-2026-48163HIGH7.2
  • MariaDB Server logoMariaDB Server
  • mariadb-12.3
NoYesJun 12, 2026
CVE-2026-55855MEDIUM6.5
  • MariaDB Server logoMariaDB Server
  • cpe:2.3:a:mariadb:mariadb
NoYesAug 28, 2026
CVE-2026-55854MEDIUM5.9
  • MariaDB Server logoMariaDB Server
  • cpe:2.3:a:mariadb:mariadb
NoYesAug 28, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management