CVE-2026-107385
HighCVSS 7.4Exploitation Probability (EPSS)
Low risk36th percentile - higher than 36% of all known CVEs
Summary
Vulnerability in MariaDB Connector/Node.js before versions 3.2.5, 3.3.4, 3.4.7, and 3.5.4. When using the text protocol, escaping always prefixes quotes with a backslash and does not honor the NO_BACKSLASH_ESCAPES mode, allowing SQL injection via an attacker-controlled value.
Risk Assessment
An attacker can close the SQL string literal and inject arbitrary SQL with the application's privileges, potentially leading to data compromise or privilege escalation.
Recommendation
Update MariaDB Connector/Node.js to version 3.2.5, 3.3.4, 3.4.7, or 3.5.4. Ensure the NO_BACKSLASH_ESCAPES mode is handled correctly.
Other vulnerabilities in MariaDB Connector/Node.js
See all- CVE-2026-107384High
Vulnerability in MariaDB Connector/Node.js from 3.2.0 to 3.2.5, 3.3.4, 3.4.7, and 3.5.4. When permitSetMultiParamEntries is enabled, object keys are expanded into a SQL SET clause without being processed by escapeId, allowing SQL injection via a key containing a backtick.
- CVE-2026-107383High
Vulnerability in MariaDB Connector/Node.js before versions 3.2.5, 3.3.4, 3.4.7, and 3.5.4. The GeoJSON Polygon and MultiPolygon binary encoders allocate memory via Buffer.allocUnsafe() based on each ring's numeric length before confirming the ring is an array, potentially disclosing uninitialized Node.js heap data.
- CVE-2026-107382Medium
In MariaDB Connector/Node.js from version 3.3.0 to 3.5.4, the zero-configuration TLS fingerprint-validation path calls Ed25519PasswordAuth.hash() through Authentication.validateFingerPrint, but Ed25519PasswordAuth.hash() references a seed identifier that is not in scope. Under specific conditions (TCP connection, TLS enabled with ssl: true or an ssl object with rejectUnauthorized not false, a password set, no ssl.ca configured, and client_ed25519 negotiated), a synchronous ReferenceError can escape the socket data handler, causing the client process to terminate under Node.js default uncaught-exception behavior. This issue is fixed in version 3.5.4.
- CVE-2026-55855Medium
MariaDB Connector/Node.js prior to versions 3.2.4, 3.3.3, 3.4.6, and 3.5.3 permits SQL injection when attacker-controlled Buffer parameters are escaped client-side under the big5, gbk, sjis, cp932, or gb18030 client character sets. PacketOutputStream.writeBufferEscape in lib/io/packet-output-stream.js escaped bytes without the charset-aware getMbRecognizer logic in lib/misc/charset-mb.js. The server SQL lexer runs my_ismbchar before escape processing, so an attacker-controlled lead byte can consume the inserted 0x5C backslash as a multibyte trail byte and leave the following 0x27 quote unescaped, terminating the string literal and allowing arbitrary SQL. The default utf8mb4 character set and parameters sent through the execute binary prepared-statement path are not affected.
- CVE-2026-55854Medium
MariaDB Connector/Node.js prior to versions 3.2.4, 3.3.3, 3.4.6, and 3.5.3 can disclose an account password when PAM dialog authentication is negotiated over an insecure transport. In lib/cmd/handshake/auth/pam-password-auth.js and lib/cmd/handshake/authentication.js, the SendPamAuthPacketFactory behavior for the server-side plugin dialog lacked the secure-transport gate applied to mysql_clear_password. With the default sslMode=DISABLE and restrictedAuth=null settings, a hostile or on-path server can send an Authentication Switch Request for dialog over plain TCP, causing the connector to return the account password in cleartext. Properly verified TLS and a local Unix socket prevent this path, while fingerprint-only server identity validation is not sufficient.
- CVE-2026-55215High
MariaDB Connector/Node.js before versions 3.3.3, 3.4.6, and 3.5.3, when SSL is enabled without a pinned CA or server certificate, sends credentials before completing certificate fingerprint validation. An active man-in-the-middle can capture the database password.
Original NVD description (English source)
MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB and MySQL databases. Prior to 3.2.5, 3.3.4, 3.4.7, and 3.5.4, text-protocol escaping always prefixes quotes with a backslash and does not honor the session's NO_BACKSLASH_ESCAPES mode, including in Connection.escape(). When that mode is enabled, the backslash is an ordinary character, so an attacker-controlled placeholder value can close the SQL string literal and inject arbitrary SQL with the application's database privileges. The vulnerable configuration may be enabled server-wide, through connector initialization options, or with an application-issued SET sql_mode; execute() and batch() use binary protocols and are not affected. This issue is fixed in versions 3.2.5, 3.3.4, 3.4.7, and 3.5.4.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

