Loading...
Skip to main content

CVE-2026-107384 — Vulnerability in mariadb — CVE Details

HIGH

MariaDB Connector/Node.js: SQL injection through object keys in SET expansion (permitSetMultiParamEntries)

Published October 8, 2026Updated October 8, 2026Source: osv

Summary

### Description With the non-default permitSetMultiParamEntries option enabled, an object passed as a query parameter is expanded into a SET clause, each key becoming a column name. The three code paths implementing that expansion built the backtick-quoted identifier by hand and wrote the key out unescaped, while only the value was escaped. A key containing a backtick therefore closed the identifier, and the remainder of the key was parsed as SQL. The connector's own identifier escaper (escapeId, which correctly doubles backticks) existed but was not called from any of the three sites. This is an incomplete fix of GitHub issue #252, which corrected escapeId itself in 2023 but left these hand-built call sites unchanged. ### Impact An application that enables permitSetMultiParamEntries and passes an object with attacker-influenced keys into a statement such as conn.query('UPDATE users SET ? WHERE id = ?', [body, id]) allows the caller to write columns the application never intended to expose — a role, balance or password column — and to append arbitrary SQL to the statement, since the injected text is not confined to an assignment. Exposure requires the option to be enabled: it is off by default, and with it off the object is serialised and escaped as a single string literal, so the key never reaches the SQL grammar. Passing a request body into this API is, however, the ordinary reason to enable the option. An application that enables it is asking for keys to become column names, not for keys to become arbitrary SQL. ### Resolution All three expansion sites now route the key through the identifier escaper, doubling backticks before writing the column name. The feature is unchanged for legitimate keys, including reserved words. ### Workarounds Disable permitSetMultiParamEntries (the default), or validate object keys against an allow-list of column names before passing them to query(), until upgraded. ### Credit Reported by fg0x0.

Advisory Timeline

  • First published October 8, 2026 (4 days ago).
  • Last revised October 8, 2026 — 0 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

npm
Update mariadb to 3.4.7 or later
npm install mariadb@3.4.7
npm
Update mariadb to 3.2.5 or later
npm install mariadb@3.2.5
npm
Update mariadb to 3.3.4 or later
npm install mariadb@3.3.4
npm
Update mariadb to 3.5.4 or later
npm install mariadb@3.5.4

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (4)

Affects 1 ecosystem: npm (1).

PackageEcosystemAffectedFixed In
mariadb
npm
All versions3.4.7
mariadb
npm
All versions3.2.5
mariadb
npm
All versions3.3.4
mariadb
npm
All versions3.5.4

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.1 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Frequently Asked Questions

What is CVE-2026-107384?
MariaDB Connector/Node.js: SQL injection through object keys in SET expansion (permitSetMultiParamEntries) This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.1/10).
How do I check if my project is affected by CVE-2026-107384?
CVE-2026-107384 affects mariadb. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-107384 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.1

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-v6pj-gxxw-phfw

Related CVEs

  • CVE-2026-105642
    HIGH

    Ghost: Remote Code Execution via Bookmark Card Images

  • CVE-2026-107375
    HIGH

    JHipster: SQL Injection in the Parameter of JHipster-Generated Reactive (WebFlux + R2DBC) Applicationssort

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies