CVE-2026-107384

CVE-2026-107384 is a high-severity SQL injection vulnerability in mariadb (npm), affecting versions >= 3.2.0, < 3.2.5. It is fixed in 3.2.5, 3.3.4, 3.4.7, 3.5.4.

Does this CVE actually affect you?

Kodem shows which CVEs are reachable and running in your applications, so you fix what's exploitable, not just what's listed.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Runtime intelligence, not another scanner.

Summary

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

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.

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.

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.

Untrusted input alters a database query, allowing the attacker to read or modify data the query was not intended to access. Typical impact: data disclosure or modification.

CVE-2026-107384 has a CVSS score of 8.1 (High). The vector is network-reachable, no privileges required, and no user interaction. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment. A fixed version is available (3.2.5, 3.3.4, 3.4.7, 3.5.4); upgrading removes the vulnerable code path.

Affected versions

mariadb (>= 3.2.0, < 3.2.5) mariadb (>= 3.3.0, < 3.3.4) mariadb (>= 3.4.0, < 3.4.7) mariadb (>= 3.5.0-rc.0, < 3.5.4)

Security releases

mariadb → 3.2.5 (npm) mariadb → 3.3.4 (npm) mariadb → 3.4.7 (npm) mariadb → 3.5.4 (npm)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

Already deployed Kodem?

See it in your environmentNew to Kodem? Get a demo →

Remediation advice

Upgrade the following packages to resolve this vulnerability:

mariadb to 3.2.5 or later; mariadb to 3.3.4 or later; mariadb to 3.4.7 or later; mariadb to 3.5.4 or later

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently Asked Questions

  1. What is CVE-2026-107384? CVE-2026-107384 is a high-severity SQL injection vulnerability in mariadb (npm), affecting versions >= 3.2.0, < 3.2.5. It is fixed in 3.2.5, 3.3.4, 3.4.7, 3.5.4. Untrusted input alters a database query, allowing the attacker to read or modify data the query was not intended to access.
  2. How severe is CVE-2026-107384? CVE-2026-107384 has a CVSS score of 8.1 (High). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
  3. Which versions of mariadb are affected by CVE-2026-107384? mariadb (npm) versions >= 3.2.0, < 3.2.5 is affected.
  4. Is there a fix for CVE-2026-107384? Yes. CVE-2026-107384 is fixed in 3.2.5, 3.3.4, 3.4.7, 3.5.4. Upgrade to this version or later.
  5. Is CVE-2026-107384 exploitable, and should I be worried? Whether CVE-2026-107384 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  6. What actually determines whether CVE-2026-107384 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  7. How do I fix CVE-2026-107384?
    • Upgrade mariadb to 3.2.5 or later
    • Upgrade mariadb to 3.3.4 or later
    • Upgrade mariadb to 3.4.7 or later
    • Upgrade mariadb to 3.5.4 or later

Other vulnerabilities in mariadb

Stop the waste.
Protect your environment with Kodem.