MariaDB Connector/Node.js: Connector leaks the cleartext password to an MitM despite `ssl: true`
MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB and MySQL databases. Prior to versions 3.3.3, 3.4.6, and 3.5.3, when ssl is enabled without a pinned CA or server certificate, MariaDB Connector/Node.js sends credentials before completing certificate fingerprint validation. In lib/cmd/handshake/auth/handshake.js, a server that selects mysql_clear_password as the initial authentication plugin can receive the password before the post-TLS identity check. In lib/cmd/handshake/authentication.js, an authentication switch can evaluate the previous plugin instead of the requested target plugin, allowing mysql_clear_password to send the credential first. An active man-in-the-middle can present a self-signed certificate, capture the database password, and use it to authenticate directly even though the connector later rejects the server and closes the connection. This issue is fixed in versions 3.3.3, 3.4.6, and 3.5.3.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-55215
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 21:09 UTC · Revision 1
Source evidence
MariaDB Connector/Node.js: Connector leaks the cleartext password to an MitM despite `ssl: true`
core-osv · Original sourcePublished 28 Aug 2026, 19:02 UTC
MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB and MySQL databases. Prior to versions 3.3.3, 3.4.6, and 3.5.3, when ssl is enabled without a pinned CA or server certificate, MariaDB Connector/Node.js sends credentials before completing certificate fingerprint validation. In lib/cmd/handshake/auth/handshake.js, a server that selects mysql_clear_password as the initial authentication plugin can receive the password before the post-TLS identity check. In lib/cmd/handshake/authentication.js, an authentication switch can evaluate the previous plugin instead of the requested target plugin, allowing mysql_clear_password to send the credential first. An active man-in-the-middle can present a self-signed certificate, capture the database password, and use it to authenticate directly even though the connector later rejects the server and closes the connection. This issue is fixed in versions 3.3.3, 3.4.6, and 3.5.3.
osv:CVE-2026-55215
Complete source record
{
"id": "a88e3b0abc8d271fa40219c79f19e5a26ded75b6d28c345a038a0c70b82bc4ad",
"url": "https://osv.dev/vulnerability/CVE-2026-55215",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "MariaDB Connector/Node.js: Connector leaks the cleartext password to an MitM despite `ssl: true`",
"summary": "MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB and MySQL databases. Prior to versions 3.3.3, 3.4.6, and 3.5.3, when ssl is enabled without a pinned CA or server certificate, MariaDB Connector/Node.js sends credentials before completing certificate fingerprint validation. In lib/cmd/handshake/auth/handshake.js, a server that selects mysql_clear_password as the initial authentication plugin can receive the password before the post-TLS identity check. In lib/cmd/handshake/authentication.js, an authentication switch can evaluate the previous plugin instead of the requested target plugin, allowing mysql_clear_password to send the credential first. An active man-in-the-middle can present a self-signed certificate, capture the database password, and use it to authenticate directly even though the connector later rejects the server and closes the connection. This issue is fixed in versions 3.3.3, 3.4.6, and 3.5.3.",
"evidence": "osv:CVE-2026-55215",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-55215",
"aliases": [
"BIT-mariadb-2026-55215",
"BIT-mariadb-min-2026-55215",
"BIT-mysql-client-2026-55215",
"CVE-2026-55215",
"GHSA-cqhc-2h57-wpxf"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/mariadb-corporation/mariadb-connector-nodejs",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "e0064ca9171b0046ad4be1a1dc1771e7dd0bcd96"
},
{
"fixed": "514576a5a1fab3ea8498613e259a0b7a764e7302"
},
{
"fixed": "c47d7275835c78c7eb8186cd23e9d57c045c128b"
},
{
"fixed": "ecd36958e6e3bf0e0fa8389546f50c0ed6dbb2ac"
},
{
"fixed": "07e6f631a6052649b72e9aa024583d305ac7611d"
},
{
"fixed": "1d50f7210af2e01bf90b155e073f041952901839"
},
{
"fixed": "14e0f16bd78584b3b24db33c1c6e62e3a3d241a2"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "3.2.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "514576a5a1fab3ea8498613e259a0b7a764e7302"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "c47d7275835c78c7eb8186cd23e9d57c045c128b"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "ecd36958e6e3bf0e0fa8389546f50c0ed6dbb2ac"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "07e6f631a6052649b72e9aa024583d305ac7611d"
}
],
"source": "REFERENCES_TAG",
"original_tag": "3.3.3"
},
{
"range": [
{
"fixed": "1d50f7210af2e01bf90b155e073f041952901839"
}
],
"source": "REFERENCES_TAG",
"original_tag": "3.4.6"
},
{
"range": [
{
"fixed": "14e0f16bd78584b3b24db33c1c6e62e3a3d241a2"
}
],
"source": "REFERENCES_TAG",
"original_tag": "3.5.3"
}
]
}
}
],
"versions": [
"3.5.2",
"3.5.1",
"3.4.5",
"3.5.0-rc.0",
"3.4.4",
"3.4.3",
"3.3.2",
"3.4.2",
"3.4.1",
"3.2.3",
"3.4.0",
"3.3.1",
"3.3.0",
"3.2.2",
"3.2.1",
"3.2.0",
"3.0.0-ga",
"2.5.6",
"2.5.4",
"2.5.3",
"2.5.2",
"2.5.1",
"2.5.0",
"2.4.2",
"2.4.1",
"2.4.0",
"2.3.0",
"2.2.0",
"2.1.5",
"2.1.4",
"2.1.3",
"2.1.2",
"2.1.1",
"2.1.0",
"2.0.5",
"2.0.3",
"0.7.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55215.json"
}
}
],
"modified": "2026-10-28T02:30:23.691517144Z",
"provider": "osv",
"references": [
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/releases/tag/3.3.3",
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/releases/tag/3.4.6",
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/releases/tag/3.5.3",
"https://hackerone.com/reports/3777370",
"https://jira.mariadb.org/browse/CONJS-349",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55215.json",
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/security/advisories/GHSA-cqhc-2h57-wpxf",
"https://nvd.nist.gov/vuln/detail/CVE-2026-55215",
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/commit/514576a5a1fab3ea8498613e259a0b7a764e7302",
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/commit/c47d7275835c78c7eb8186cd23e9d57c045c128b",
"https://github.com/mariadb-corporation/mariadb-connector-nodejs/commit/ecd36958e6e3bf0e0fa8389546f50c0ed6dbb2ac"
],
"provider_metadata": {
"cwe_ids": [
"CWE-295",
"CWE-522"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55215.json"
}
},
"related_cves": [
{
"value": "CVE-2026-55215",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 490096,
"published_at": "2026-08-28T19:02:49.413+00:00"
}