Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged DB user
-
DeliveryCall CONNECT file-access UDF with target path
-
ExploitBypass missing FILE/secure_file_priv check
-
ExecutionRead or write OS-accessible files
-
ImpactDisclose or tamper with sensitive data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation 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 optional CONNECT storage engine plugin (ha_connect) to be installed and loaded - it is not enabled in default MariaDB installations - and the attacker must possess a valid low-privileged database account able to execute the CONNECT file-access UDFs json_file(), bson_file(), jfile_make(), bfile_make(), or jbin_file(). The attacker does NOT need the FILE privilege and is not constrained by secure_file_priv, which is precisely the missing enforcement. Realistic impact is limited by the operating-system file permissions of the database service account (typically the 'mysql' user), so only files that account can read or write are reachable; no end-user interaction is required. |
| Impact | This is a genuine but moderate-priority authorization flaw (CWE-862), not a high-urgency emergency. The vendor CVSS of 5.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N) is internally consistent with the description: a network-reachable, low-complexity issue that requires an existing low-privileged database account (PR:L) and yields only partial confidentiality and integrity impact (C:L/I:L) because file access is still bounded by operating-system permissions of the database service account, with no availability impact (A:N). No EPSS score, KEV listing, or public POC was provided, so there is no signal of active or probable near-term exploitation - the absence of these should be read as 'not present in the supplied data' rather than confirmed-safe. The practical risk is further gated by a prerequisite the raw CVSS vector does not capture: the CONNECT storage engine plugin is an optional, non-default component, so most MariaDB deployments are not exposed at all. The source-code diff confirms the root cause and fix (a new connect_can_access_file() helper enforcing FILE_ACL and is_secure_file_path()), which raises confidence that the vulnerability and its remediation are real. Net: a real defense-in-depth gap worth patching on CONNECT-enabled servers, but not a drop-everything issue given PR:L, partial impact, OS-permission limits, and no exploitation evidence. |
| Exploit ScenarioDerived | An attacker who already holds a low-privileged MariaDB account on a server where the CONNECT engine is loaded calls a CONNECT file-access UDF such as json_file() or jfile_make() with an arbitrary filesystem path. Because FILE privilege and secure_file_priv are not enforced, they read sensitive files (e.g., configuration or credential files) or write files anywhere the database service account's OS permissions allow, bypassing the intended database-level authorization. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Missing FILE-privilege and secure_file_priv enforcement in MariaDB Server's optional CONNECT storage engine plugin lets an authenticated, low-privileged database user read or write files on the database host through the file-access UDFs json_file(), bson_file(), jfile_make(), bfile_make(), and jbin_file(), bypassing the access controls those functions were supposed to honor. Affected releases range from 10.6.1 up to (but excluding) the fixed builds 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, and 13.0.2; exploitation requires the CONNECT plugin to be installed and loaded (it is not part of a default MariaDB installation) plus a valid low-privileged account able to call the affected UDFs. The practical impact is bounded by the operating-system permissions of the database service account, so reachable files are limited to those the mysqld user can already read or write; no public exploit code has been identified at time of analysis, and the flaw is rated moderate (CVSS 3.1 5.4, AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N) rather than an emergency.
RemediationAI
Vendor-released patch: upgrade to MariaDB 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, or 13.0.2 as appropriate for your release train - release artifacts are linked at https://github.com/MariaDB/server/releases/tag/mariadb-10.6.28, https://github.com/MariaDB/server/releases/tag/mariadb-10.11.19, https://github.com/MariaDB/server/releases/tag/mariadb-11.4.13, https://github.com/MariaDB/server/releases/tag/mariadb-11.8.9, https://github.com/MariaDB/server/releases/tag/mariadb-12.3.3 and https://github.com/MariaDB/server/releases/tag/mariadb-13.0.2, and the code change is in commit 4f66ca1b69daf1b7e6a562ca8e86d77a6a70abfe (see also advisory https://github.com/MariaDB/server/security/advisories/GHSA-2245-9hm3-wxf6 and MDEV-40323). If immediate upgrading is not possible, the highest-value compensating control is to remove the exposure entirely by not loading the CONNECT plugin - uninstall the plugin, drop ha_connect from the plugin configuration, or rebuild without the CONNECT storage engine; the trade-off is loss of CONNECT and its file/JDBC-style table and UDF functionality, which may break applications that rely on it. Where CONNECT must remain, restrict the attack surface by revoking EXECUTE on the affected UDFs from non-administrative accounts (json_file, bson_file, jfile_make, bfile_make, jbin_file) so only trusted users can call them, accepting that any user still granted EXECUTE retains unconstrained file access. As defense in depth, run mysqld under a dedicated least-privileged OS account whose file permissions exclude sensitive paths (configuration, key material, other tenants' data), set secure_file_priv to a tightly controlled directory, and audit account grants - noting that OS permissions and secure_file_priv only limit blast radius here because the vulnerable code paths ignore secure_file_priv until patched.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-862 (Missing Authorization): the CONNECT engine plugin's file-access user-defined functions were implemented without calling MariaDB's privilege and path checks. Normally, reading or writing server-side files requires the FILE privilege and is additionally constrained by the secure_file_priv system variable, which restricts paths to an administrator-approved directory (or blocks them entirely). The vulnerable UDFs skipped both controls, so an authenticated user with only ordinary database privileges could pass an arbitrary filesystem path and have the server open, read, or write it. The upstream fix (commit 4f66ca1b69daf1b7e6a562ca8e86d77a6a70abfe) adds a new storage/connect/filechk.cpp unit exposing connect_can_access_file(), which calls check_global_access(current_thd, FILE_ACL, true) to require the FILE privilege and then normalizes the supplied path with fn_format() using MY_RELATIVE_PATH | MY_UNPACK_FILENAME | MY_RETURN_REAL_PATH | MY_SAFE_PATH before validating it with is_secure_file_path(). The helper fails closed on NULL paths and on path-truncation overflow, and jsonudf.cpp, bsonudf.cpp and the binary UDF paths were patched to emit "Access denied: FILE privilege or secure_file_priv violation" and return NULL instead of performing the I/O. The CPE entry cpe:2.3:a:mariadb:server:*:*:*:*:*:*:*:* confirms the affected component is the MariaDB server core rather than a separate plugin package.
Know when MariaDB 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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Reachable over the network by an authenticated low-privileged account (PR:L), no user interaction; partial read/write of OS-accessible files bounded by service-account permissions gives C:L/I:L and A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
MariaDB server is a community developed fork of MySQL server. From 10.6.1 until 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, and 13.0.2, the CONNECT engine plugin file-access UDFs json_file(), bson_file(), jfile_make(), bfile_make(), and jbin_file() are affected because each does not enforce FILE privilege or the secure_file_priv setting. A low-privileged attacker can trigger the issue by calling a CONNECT file-access UDF with a filesystem path, then invoke a CONNECT file-access UDF to access a filesystem path and read or write files that the database account is not authorized to access, subject to operating-system permissions. This issue is fixed in versions 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, and 13.0.2.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Oracle MySQL through 5.5.52, 5.6.x through 5.6.33, and 5.7.x through 5.7.15; MariaDB before 5.5.51, 10.0.x before 10.0.2
MySQL 5.5.19 and possibly other versions, and MariaDB 5.5.28a and possibly other versions, when configured to assign the
The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0
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
sql/password.c in Oracle MySQL 5.1.x before 5.1.63, 5.5.x before 5.5.24, and 5.6.x before 5.6.6, and MariaDB 5.1.x befor
Heap-based buffer overflow in Oracle MySQL 5.5.19 and other versions through 5.5.28, and MariaDB 5.5.28a and possibly ot
Stack-based buffer overflow in the acl_get function in Oracle MySQL 5.5.19 and other versions through 5.5.28, and 5.1.53
The ssl3_send_client_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before
mysqld_safe in Oracle MySQL through 5.5.51, 5.6.x through 5.6.32, and 5.7.x through 5.7.14; MariaDB; Percona Server befo
The dtls1_get_message_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.
Oracle MySQL before 5.7.3, Oracle MySQL Connector/C (aka libmysqlclient) before 6.1.3, and MariaDB before 5.5.44 use the
The BN_mod_sqrt() function, which computes a modular square root, contains a bug that can cause it to loop forever for n
EUVD-2026-102923
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB