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·2 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

•7 minutes ago•CVE-2026-55859
5.9

CVE-2026-55859: Client-Server Charset Confusion in MariaDB Connector/R2DBC leading to SQL Injection

An input validation and encoding desynchronization vulnerability exists in MariaDB Connector/R2DBC versions prior to 1.4.1. The driver assumes all communication utilizes the UTF-8 character set, but fails to account for server-driven mid-session changes to the character_set_client variable. When a change to a multi-byte character set such as GBK or Big5 is induced, the server interprets client-escaped single quotes as part of a multi-byte character. This state desynchronization bypasses standard escaping mechanisms and allows remote unauthenticated attackers to execute arbitrary SQL commands.

Alon Barad
Alon Barad
0 views•5 min read
•about 2 hours ago•CVE-2026-55830
8.3

CVE-2026-55830: Complete Sandbox Escape via Positional-Only Arguments in RestrictedPython

A critical security flaw was identified in RestrictedPython prior to version 8.3 where positional-only arguments introduced in Python 3.8 were not properly validated. This allowed an attacker executing code within the sandbox to shadow critical security guards like `_write_` and `_getattr_`, leading to a complete sandbox escape and arbitrary code execution on the underlying server.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 3 hours ago•CVE-2026-55855
6.5

CVE-2026-55855: SQL Injection in MariaDB Connector/Node.js via Multi-byte Client Character Sets

CVE-2026-55855 is a client-side SQL injection vulnerability in the MariaDB Connector/Node.js library that occurs when using legacy multi-byte character sets. The flaw arises from naive, byte-wise client-side parameter escaping. Attackers can leverage specific multi-byte lead bytes to absorb backslash escape characters on the server side, allowing them to terminate string literals and execute arbitrary SQL commands.

Amit Schendel
Amit Schendel
6 views•7 min read
•about 4 hours ago•CVE-2026-55761
7.1

CVE-2026-55761: Improper Authentication Vulnerability in Portainer Community Edition

An improper authentication vulnerability (CWE-287) in Portainer Community Edition (CE) allows unauthenticated remote attackers to achieve full administrative takeover. During the initial five-minute uninitialized setup window, sensitive endpoints responsible for creating the initial administrator user and restoring database state are publicly accessible without authentication. Attackers can exploit this to create administrative credentials or overwrite the system state with a malicious database configuration.

Alon Barad
Alon Barad
3 views•7 min read
•about 5 hours ago•CVE-2026-55678
6.9

CVE-2026-55678: Unauthenticated Node Registration and Credential Leakage in Arc Enterprise Clustering

CVE-2026-55678 defines a critical security vulnerability in the Enterprise clustering implementation of Arc, an open-source SQL-native time-series database. When clustering is enabled but a shared secret is not defined, the cluster coordinator fails to enforce authentication on cluster join requests and node status updates. Remote, unauthenticated attackers can exploit this behavior to register a rogue node, hijack telemetry routing, and harvest sensitive client authentication headers.

Alon Barad
Alon Barad
9 views•6 min read
•about 7 hours ago•CVE-2026-55247
9.1

CVE-2026-55247: Multiple Vulnerabilities (DoS, SSRF, and Stored XSS) in plone.app.event iCalendar Import

A critical security vulnerability exists in plone.app.event, the event content type package for the Plone CMS. Prior to versions 5.2.4 and 6.0.1, the iCalendar import component lacked proper file size controls, URL scheme validation, and network isolation filters. Authenticated editors could exploit these deficiencies to cause denial of service via memory exhaustion, read local files, perform server-side request forgery, and inject stored cross-site scripting vectors.

Alon Barad
Alon Barad
6 views•6 min read