CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-55860

CVE-2026-55860: Cleartext Password Disclosure in MariaDB Connector/R2DBC

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 29, 2026·5 min read·34 visits

Executive Summary (TL;DR)

MariaDB Connector/R2DBC before 1.4.1 fails to verify if TLS or Unix socket encryption is active before using clear-text password authentication plugins, allowing network attackers to intercept plaintext credentials.

A security vulnerability in the MariaDB Connector/R2DBC client driver allows credential theft during the database authentication phase. The client driver does not gate clear-text password authentication plugins on transport encryption, making it possible for on-path attackers or hostile database servers to intercept passwords.

Vulnerability Overview

The MariaDB Connector/R2DBC is a reactive, non-blocking Java driver used to communicate with MariaDB and MySQL databases. It manages connection handshakes, including protocol negotiation and authentication flows. The driver exposes an attack surface during the initial connection setup where authentication plugins are executed.

The vulnerability occurs because the client-side driver does not evaluate the encryption state of the underlying network transport before running clear-text password authentication plugins, such as mysql_clear_password or dialog (PAM). This behavior violates standard transport security practices by permitting sensitive authentication credentials to be sent without encryption over plain TCP connections.

An attacker capable of manipulating network traffic or hosting a rogue database server can exploit this omission. By issuing an authentication method switch request, the attacker can force the client to transmit the user's plain-text password across the wire, compromising the credentials.

Root Cause Analysis

The root cause of this flaw is an architectural gap in the AuthenticationPlugin interface of the org.mariadb:r2dbc-mariadb driver. Prior to version 1.4.1, this interface lacked the native capability to check if transport-level security was active before executing an authentication flow.

Under standard database protocols, a database server can send an AuthSwitchRequest packet (type 0xFE) to request a change of authentication mechanism. The client is designed to dynamically load the requested plugin and process the handshake. When a server requested mysql_clear_password or dialog, the driver loaded the corresponding ClearPasswordPluginFlow or PamPluginFlow without verifying if the connection was secure.

Because the driver lacked a security boundary gating these plugins, it proceeded to invoke the plugin's next() method over plain TCP. The plugin then retrieved the raw, unhashed password from the driver's configuration and transmitted it onto the wire, leading to credential disclosure.

Code Analysis

The vulnerability was resolved by introducing a security validation contract within the AuthenticationPlugin interface and implementing enforcement inside the handshake flow.

The patch introduced the requireSecure() default method to the AuthenticationPlugin interface:

public interface AuthenticationPlugin {
  AuthenticationPlugin create();
 
  /**
   * Whether this authentication plugin requires a secure connection (TLS or a local unix socket).
   * Plugins that transmit the password in clear text return true.
   */
  default boolean requireSecure() {
    return false;
  }
 
  ClientMessage next(
      MariadbConnectionConfiguration configuration,
      byte[] seed,
      ...

The clear-text authentication plugins, including ClearPasswordPluginFlow and PamPluginFlow, were updated to override this method and return true:

@Override
public boolean requireSecure() {
  return true;
}

The AuthenticationFlow orchestrator now uses these checks to block execution over unencrypted links by throwing a R2dbcPermissionDeniedException if a secure transport is not active:

private boolean isSecureConnection() {
  return configuration.getSslConfig().getSslMode() != SslMode.DISABLE
      || configuration.getSocket() != null;
}
 
// Enforcement during AuthSwitchRequest handling
if (authPlugin.requireSecure() && !flow.isSecureConnection()) {
  sink.error(clearTextRefusal(plugin));
} else {
  flow.authMoreDataPacket = null;
  flow.pluginHandler = authPlugin;
  sink.next(AUTH_SWITCH);
}

Exploitation Methodology

Exploitation of this vulnerability requires the attacker to occupy an active Man-in-the-Middle (MITM) position on the network or trick the client into connecting to a rogue database server. Purely passive eavesdropping is insufficient to trigger the payload, but allows capture once the flow is initiated.

In a MITM scenario, the client attempts to establish a plain TCP connection to a legitimate MariaDB or MySQL database server. The attacker intercepts the TCP stream during the handshake. When the handshake starts, the attacker injects an AuthSwitchRequest packet specifying the mysql_clear_password plugin.

Upon receiving the forged request, the vulnerable R2DBC driver loads the clear-text plugin and executes its authentication steps. The client serializes the plain-text password and writes it to the TCP socket, where the attacker sniffs the payload. The attacker harvests the password and optionally terminates or proxies the connection.

Impact Assessment

The security impact of CVE-2026-55860 is high, resulting in a complete loss of credential confidentiality. An attacker who successfully exploits this flaw obtains the database password in plaintext.

The vulnerability is assigned a CVSS v3.1 base score of 5.9 (Medium). The score reflects the fact that while the impact on confidentiality is high, the attack complexity is also high due to the requirement for active network-level interception or dns redirection.

In enterprise environments where the R2DBC driver is used for microservices, a compromised database password can allow unauthorized access to database systems, enabling data exfiltration, integrity tampering, or lateral movement within the network.

Remediation and Mitigation

The recommended remediation is upgrading the MariaDB Connector/R2DBC dependency to version 1.4.1 or later. This version contains the native security gates that prevent clear-text authentication over insecure channels.

If upgrading is not immediately possible, apply network-level mitigations. Configure the client's sslMode connection parameter to a secure setting such as VERIFY_CA or VERIFY_FULL. This forces TLS validation and prevents MITM attackers from intercepting or injecting handshake packets.

Additionally, enforce network segmentation to restrict database outbound traffic. Ensure the client only communicates with the database over trusted local Unix domain sockets or secure, encrypted VPN and IPsec tunnels.

Fix Analysis (1)

Technical Appendix

CVSS Score
5.9/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Affected Systems

Applications utilizing MariaDB Connector/R2DBC (Java driver) on plain TCP connections.

Affected Versions Detail

Product
Affected Versions
Fixed Version
MariaDB Connector/R2DBC
MariaDB
< 1.4.11.4.1
AttributeDetail
CWE IDCWE-319 / CWE-522
Attack VectorNetwork (AV:N)
Attack ComplexityHigh (AC:H)
CVSS Score5.9 (Medium)
Exploit Statuspoc
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1557Adversary-in-the-Middle
Credential Access
T1040Network Sniffing
Credential Access
CWE-319
Cleartext Transmission of Sensitive Information

The product transmits sensitive data over the network in cleartext without encryption.

References & Sources

  • [1]GitHub Security Advisory GHSA-c857-9x2m-cvh2
  • [2]Primary Fix Commit

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 minutes ago•CVE-2026-109619
9.2

CVE-2026-109619: Remote Code Execution in PHP Core via Stale Global State Memory Corruption (PHP2Shell)

CVE-2026-109619 (PHP2Shell) is a critical Use-After-Free vulnerability in the core PHP engine caused by improper global state cleanup during out-of-memory exception handling across persistent worker requests.

Alon Barad
Alon Barad
1 views•6 min read
•5 minutes ago•CVE-2026-113721
4.5

CVE-2026-113721: Unsafe Link Resolution in virtualenv File Generation

In Python virtualenv prior to version 21.14.9, activation script generators and configuration writers use Path.exists() before writing files. Because Path.exists() resolves symbolic links, it returns False for dangling symlinks. Consequently, virtualenv skips unlinking pre-planted symbolic links or hard links, writing data directly to target locations outside the intended virtual environment directory.

Amit Schendel
Amit Schendel
1 views•5 min read
•9 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
31 views•5 min read
•9 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
19 views•6 min read
•10 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
18 views•5 min read
•10 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
24 views•6 min read