CVE-2026-55860

Information Exposure
Affects
MariaDB Connector/R2DBC
in
MariaDB Connector/R2DBC
No items found.
Versions
<1.2.3, >=1.3.0 <1.3.1, >=1.4.0 <1.4.1

Patch Available.

Exclamation circle icon
Patch Available

This Vulnerability has been fixed in the Never-Ending Support (NES) version offered by HeroDevs.

Overview

MariaDB Connector/R2DBC is MariaDB's non-blocking client for MariaDB and MySQL databases, written in 100% Java. It implements the Reactive Relational Database Connectivity (R2DBC) API, so reactive applications, including those built on Spring Data R2DBC, can connect to and query MariaDB without blocking threads. It is distributed as the Maven artifact org.mariadb:r2dbc-mariadb.

An information exposure vulnerability (CVE-2026-55860) has been identified in the authentication handshake of MariaDB Connector/R2DBC, which allows a hostile or man-in-the-middle server to obtain the database user's password in cleartext over an unencrypted connection. The disclosed credentials can then be used to authenticate directly against the database server.

Per OWASP: Access control enforces policy such that users cannot act outside of their intended permissions. Failures typically lead to unauthorized information disclosure, modification, or destruction of all data or performing a business function outside the user's limits.

This issue affects multiple versions of MariaDB Connector/R2DBC.

Details

Module Info

Vulnerability Info

This Medium-severity vulnerability is found in the org.mariadb:r2dbc-mariadb package in MariaDB Connector/R2DBC before 1.2.3, 1.3.x before 1.3.1 and 1.4.x before 1.4.1.

During the connection handshake the server chooses the authentication plugin, either in its initial handshake packet or later with an AuthSwitchRequest. The AuthenticationFlow class accepts whatever plugin the server names. When the plugin is allowed by the optional restrictedAuth setting, or when restrictedAuth is not set (the default), it loads the plugin without checking whether the connection is encrypted:

} else if (message instanceof AuthSwitchPacket) {
  flow.authSwitchPacket = ((AuthSwitchPacket) message);
  String plugin = flow.authSwitchPacket.getPlugin();
  if (flow.configuration.getRestrictedAuth() != null
      && !Arrays.stream(flow.configuration.getRestrictedAuth())
          .anyMatch(s -> plugin.equals(s))) {
    sink.error(...);
  } else {
    AuthenticationPlugin authPlugin = AuthenticationFlowPluginLoader.get(plugin);
    flow.authMoreDataPacket = null;
    flow.pluginHandler = authPlugin;
    sink.next(AUTH_SWITCH);
  }
}

The AuthenticationPlugin interface has no way for a plugin to declare that it needs a secure transport. So the clear-text plugins mysql_clear_password (ClearPasswordPluginFlow) and dialog (PamPluginFlow) run on any connection, and both reply with the raw password:

return new ClearPasswordPacket(authSwitch.getSequencer(), configuration.getPassword());

The same applies when the server's initial handshake names mysql_clear_password. HandshakeResponse then writes the password as UTF-8 bytes into the handshake response, with the secure-transport check left as a to-do:

case ClearPasswordPluginFlow.TYPE:
  // TODO check that SSL is enable
  authData =
      (password == null) ? new byte[0] : password.toString().getBytes(StandardCharsets.UTF_8);
  break;

An attacker who controls the server, or who sits on the network path of a connection without TLS, can answer the client's handshake with a request for one of these plugins. The driver then sends the account password in cleartext, even if the account normally uses a hashed challenge-response plugin such as mysql_native_password.

Mitigation

Only recent release series of MariaDB Connector/R2DBC are supported by MariaDB plc. Older release series are End-of-Life and will not receive updates addressing this issue. For more information, see here.

Users of the affected components should apply one of the following mitigations:

  • Upgrade affected applications to a currently supported release of MariaDB Connector/R2DBC that contains the fix.
  • Leverage a commercial support partner like HeroDevs for post-EOL security support.

Credits

Vulnerability Details
Severity
Level
CVSS Assessment
Low
>=0 <4
Medium
>=4 <6
High
>=6 <8
Critical
>=8 <10
Medium
ID
CVE-2026-55860
PROJECT Affected
MariaDB Connector/R2DBC
Versions Affected
<1.2.3, >=1.3.0 <1.3.1, >=1.4.0 <1.4.1
NES Versions Affected
Published date
October 30, 2026
≈ Fix date
October 30, 2026
Category
Information Exposure
Vex Document
Download VEXHow do I use it?
Sign up for the latest vulnerability alerts fixed in
NES for MariaDB Connector/R2DBC
Rss feed icon
Subscribe via RSS
or

By submitting the form I acknowledge receipt of our Privacy Policy.

Thanks for signing up for our Newsletter! We look forward to connecting with you.
Oops! Something went wrong while submitting the form.