Skip to main content

MariaDB Connector/Node.js CVE-2026-107383

| EUVDEUVD-2026-95142 HIGH
Information Exposure (CWE-200)
2026-10-08 GitHub_M GHSA-48qf-xh34-q73r
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify app binding GeoJSON via execute()/batch()
  2. Delivery
    Submit Polygon with non-array ring and large length
  3. Exploit
    Encoder reserves uninitialized heap bytes
  4. Execution
    Unwritten buffer sent and persisted to DB
  5. Impact
    Read back value to recover leaked heap data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the target application to serialize a GeoJSON Polygon or MultiPolygon value through the BINARY protocol via the connector's execute() or batch() APIs; the text-protocol query() path is explicitly NOT affected. The specific trigger is a malformed non-array 'ring' (e.g. an object exposing a numeric length, a string, or a number) whose length is used to size a Buffer.allocUnsafe() allocation before the type is validated, leaving reserved bytes unwritten. Limiting factors: the attacker must be able to influence the geometry value the application passes to the connector, the application must actually use binary-protocol prepared statements/batches with geometry (not plain query()), and the attacker must be able to read the persisted value back to recover the leaked heap bytes. Affected versions are those prior to 3.2.5, 3.3.4, 3.4.7, and 3.5.4.

Impact

The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, base 7.5) presents this as a network-reachable, unauthenticated, high-confidentiality issue, but that score overstates practical ease of exploitation. No EPSS score, no CISA KEV listing, and no public exploit were provided, so exploitation status is 'no public exploit identified at time of analysis' - the GitHub commit diffs in the input are the vendor FIX, not weaponized exploit code, and must not be conflated with a POC. No SSVC decision data was supplied. The real-world risk is conditional rather than broadly wormable: the defect is a CWE-200 uninitialized-memory disclosure in the GeoJSON Polygon/MultiPolygon BINARY encoders only (the text-protocol query() path is explicitly unaffected), so it triggers only when an application serializes attacker-influenceable geometry values through execute() or batch(). The PR:N in the vector reflects that the connector itself requires no DB authentication from the attacker's perspective, but the attacker does not call the connector directly - they must get malformed geometry (a non-array ring exposing a numeric length) into the application's query path AND be able to read the resulting stored value back, which raises real-world attack complexity above the AC:L in the input. Impact, however, is genuinely serious if triggered: leaked heap bytes may contain other users' data, session material, DB credentials, or TLS key material, and may propagate to backups and replicas. Net: a real patch-worthy issue for affected deployments, but closer to a targeted/conditional disclosure than a mass-exploitable network bug; the AC:L in the supplied vector should be treated with caution.

Exploit ScenarioDerived

A Node.js application uses MariaDB Connector/Node.js and inserts user-supplied GeoJSON geometry into a spatial column via a prepared statement (execute()) or batch(). An attacker submits a Polygon/MultiPolygon whose ring is a non-array object carrying a large numeric length property; the encoder reserves that many uninitialized Buffer.allocUnsafe() bytes but the writing loop skips them, and the full buffer is sent to the database, persisting raw Node.js heap memory into the stored value, which the attacker then reads back. No public exploit code was identified at the time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 08, 2026

Malformed GeoJSON Polygon or MultiPolygon values cause MariaDB Connector/Node.js - every release before 3.2.5, 3.3.4, 3.4.7 and 3.5.4 - to write uninitialized Node.js heap memory into database values. When a calling application passes a non-array 'ring' (an object exposing a numeric length, a string, or a number) through the binary-protocol execute() or batch() APIs, the encoder sizes a Buffer.allocUnsafe() allocation from that ring's length but the writing loop skips the reserved bytes, so the entire buffer is sent and persisted in the database, potentially carrying other users' content, session material, database credentials or TLS key material that can then spread to backups and replicas. The published CVSS 3.1 vector (7.5, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) treats this as a trivially reachable unauthenticated disclosure, but independent review rates attack complexity High because exploitation additionally requires the attacker to influence the geometry value the application passes to the connector, the application to actually use binary-protocol prepared statements or batches with geometry rather than the unaffected text-protocol query() path, and the ability to read the persisted value back; no public exploit code has been identified at time of analysis and there is no CISA KEV entry.

RemediationAI

Vendor-released patches: upgrade MariaDB Connector/Node.js to 3.2.5, 3.3.4, 3.4.7 or 3.5.4, choosing the fixed release on the maintenance train you already run, per the GitHub advisory GHSA-48qf-xh34-q73r and MariaDB Jira CONJS-367. Until every client, worker and container image is upgraded, validate geometry input before it reaches the connector: coerce or reject any ring that is not an Array (in particular reject objects that merely expose a numeric length, strings, numbers, null and undefined) and validate this at the API boundary where client-supplied GeoJSON is parsed - the trade-off is that any application legitimately passing loosely typed geometry will start erroring and needs a normalization layer instead. If input validation is not feasible, avoid persisting Polygon or MultiPolygon through the binary protocol: either route geometry writes through the text-protocol query() path (not affected, but it sacrifices parameterized prepared statements and reintroduces SQL-injection risk that must be handled by strict escaping) or perform geometry writes from a separate, tightly controlled service that only accepts already-normalized arrays - the trade-off there is added architectural complexity and a new trust boundary. Because leaked heap bytes are permanently written to the database, also assume prior compromise: rotate database credentials and TLS keys used by the Node.js process, audit and scrub GeoJSON/geometry columns written before the upgrade, and re-evaluate backups, binary logs and replicas for the same uninitialized data. Monitoring for connector errors or null geometry returns after applying the ring-validation change can help confirm the fix is engaged; no CISA KEV entry exists, so this should be prioritized as a data-hygiene and credential-rotation task rather than an emergency patch-under-attack scenario.

Affected VersionsENISA

mariadb-connector-nodejs 3.3.0, < 3.3.4
mariadb-connector-nodejs 3.5.0-rc.0, < 3.5.4
mariadb-connector-nodejs < 3.2.5
mariadb-connector-nodejs 3.4.0, < 3.4.7

Affected Packages

npm mariadb fix: 3.2.5, 3.3.4, 3.4.7, 3.5.4
euvd mariadb_connector_nodejs fix: 3.2.5, 3.3.4, 3.4.7
euvd mariadb_connector_nodejs_3_5_0_rc_0 fix: 3.5.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw sits in the connector's binary encoder (lib/cmd/encoder/binary-encoder.js), which serializes GeoJSON values into MariaDB's geometry wire format for prepared statements and batches. For Polygon and MultiPolygon types the encoder computed the required allocation from each ring's numeric length via Buffer.allocUnsafe() - an API that deliberately does not zero the memory it returns - before verifying that the ring was actually an array. A malformed ring that merely exposes a numeric length (for example { length: 4000 }, a 4000-character string, a number, null or undefined) caused bytes to be reserved that the subsequent writing loop never populated, and because the connector then transmitted the whole buffer through execute() or batch(), the untouched region of the Node.js heap was written into the database column. This is CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), i.e. an information-disclosure defect rather than an injection or code-execution primitive; the leaked heap contents depend entirely on what the Node.js process had previously allocated and freed, so the severity of any single instance is environment-dependent even though the confidentiality impact is rated High. The text-protocol query() path uses a different code path and is explicitly not affected. The upstream fix adds an Array.isArray() check on each ring before space is reserved (plus null/undefined guards and GeometryCollection handling), so a non-array or malformed ring now returns null instead of emitting a partially initialized buffer; unit tests were added covering objects with length, strings, null, undefined, numbers, mixed valid/invalid rings, and GeometryCollections. The affected package is identified by the CPE cpe:2.3:a:mariadb-corporation:mariadb-connector-nodejs:*:*:*:*:*:*:*:*, which is version-wildcarded, so the precise vulnerable ranges must be taken from the advisory and the 3.2.5 / 3.3.4 / 3.4.7 / 3.5.4 release tags rather than from the CPE alone.

Know when Node.js gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.9 MEDIUM

Network-reachable with no connector auth (PR:N), but requires the app to encode attacker-influenced geometry via binary execute()/batch() and read the value back, so AC:H; confidentiality-only heap disclosure (C:H, I:N, A:N).

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 08, 2026 - 20:03 EUVD
CVE Published
Oct 08, 2026 - 18:27 cve.org
HIGH 7.5

DescriptionCVE.org

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, the GeoJSON Polygon and MultiPolygon binary encoders size a Buffer.allocUnsafe() allocation from each ring's numeric length before confirming that the ring is an array. A malformed non-array ring can therefore reserve bytes that the writing loop skips, and the connector sends the full buffer through execute() or batch(), disclosing uninitialized Node.js heap data into a database value. The persisted data can include other users' content, session material, database credentials, or TLS key material and may propagate to backups and replicas. The text-protocol query() path is not affected. This issue is fixed in versions 3.2.5, 3.3.4, 3.4.7, and 3.5.4.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 npm packages depend on mariadb (3 direct, 1 indirect)

Ecosystem-wide dependent count for version 3.3.0.

Technical POC Analysis

Evidence basis: GitHub Security Advisory GHSA-48qf-xh34-q73r only.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

MariaDB Connector/Node.js versions before 3.2.5, 3.3.4, 3.4.7, and 3.5.4 can leak sensitive Node.js heap memory-including credentials, session material, and TLS keys-into database fields, backups, and replicas when applications process certain malformed GeoJSON inputs. This unauthenticated disclosure (CVSS 7.5 per PR:N) has no public exploit identified at time of analysis, though independent review notes exploitation requires attacker influence over the geometry value, reducing likelihood while still presenting a high-impact confidentiality risk. Leadership should care because leaked secrets can spread beyond the immediate database and compromise authentication, encryption, and backup integrity across the organization.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Enforce application-layer validation to reject non-array 'ring' values in GeoJSON Polygon/MultiPolygon inputs; avoid passing untrusted geometry data to binary-protocol execute() or batch() APIs; restrict database user permissions; enable audit logging on database writes; monitor backups and replicas for unexpected memory-like content; and rotate credentials, session tokens, and TLS keys if exposure is suspected.

Threat Intelligence Overview

EPSS Score
0.4%
Top 69% exploitable
Prevalence
Medium
widely used Node.js DB driver, but spatial/binary-geometry usage is a narrower subset
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy