Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to MariaDB as low-priv user
-
DeliveryExecute query with embedded null bytes
-
ExploitQuery cached by qc_info plugin
-
ExecutionSELECT from information_schema.query_cache_info
-
ImpactDisclose adjacent heap memory or crash server
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires that the optional qc_info plugin be installed/loaded (it is NOT part of a default MariaDB installation) AND that the MariaDB query cache be enabled (query cache is deprecated and off by default in modern builds). The attacker must hold valid database credentials (PR:L) with privileges to execute queries and to read the information_schema.query_cache_info table. The trigger is specific: a query containing embedded null bytes must be cached, then the query_cache_info view read. Limiting factors: authentication is mandatory (no anonymous/unauthenticated path), the vulnerable code path only exists when the qc_info plugin is active, and impact is limited to partial memory disclosure or a server crash rather than code execution. Affected versions span 10.6.1 up to (but not including) the fixed 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, and 13.0.2. |
| Impact | This is a moderate-severity out-of-bounds read (CWE-125) with the vendor-supplied CVSS:3.1 vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:L (6.4, Medium). The signals are internally consistent and point to a real-but-bounded issue rather than a top-tier emergency: network reachable (AV:N) and low attack complexity (AC:L), but it requires an authenticated database session (PR:L) and yields only limited confidentiality impact (C:L, partial adjacent-memory disclosure) plus limited availability impact (A:L, server crash), with no integrity impact (I:N). The scope-changed flag (S:C) is defensible because the query cache is shared across sessions, so disclosed heap data could belong to other users/databases. Exploitation status: no public exploit identified at time of analysis - the only code reference is the upstream fix commit, not a weaponized POC. EPSS was NOT provided in the input, and the CVE is NOT on CISA KEV, so there is no evidence of active exploitation or high predicted exploitation probability. No SSVC decision data was supplied. The practical risk is further reduced by configuration prerequisites (see exploitation_conditions): the non-default qc_info plugin must be installed and the deprecated query cache must be enabled. Net: treat as a standard patch-cycle item for MariaDB deployments that actually load the qc_info plugin; de-prioritize where that plugin is absent. |
| Exploit ScenarioDerived | An authenticated database user (even low-privileged) on a MariaDB server where the qc_info plugin is loaded and the query cache is enabled submits a query containing embedded null bytes, causing it to be cached with a miscomputed length. The attacker then selects from information_schema.query_cache_info, triggering an out-of-bounds read past a heap buffer that leaks adjacent process memory (potentially other sessions' data) or crashes the server (DoS). No public exploit code has been identified; network vector with low complexity makes exploitation straightforward once the plugin/query-cache preconditions are met. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
Authenticated database users can trigger a heap out-of-bounds read in the MariaDB Server qc_info plugin (information_schema.query_cache_info), potentially disclosing adjacent process memory or crashing the server. The flaw affects MariaDB releases from 10.6.1 up to the fixed versions 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, and 13.0.2, and requires the optional qc_info plugin to be loaded plus an enabled query cache before a query containing embedded null bytes is cached and the query_cache_info table is then read. Rated 6.4 (Medium) with CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:L; there is no public exploit identified at time of analysis and the impact is limited to partial memory disclosure or denial of service rather than code execution.
RemediationAI
Upgrade to the vendor-released fixed version for your branch: 10.6.28, 10.11.19, 11.4.13, 11.8.9, 12.3.3, or 13.0.2 (the fix is upstream commit 0931994096b84ecc9ffc8eb3517c7e09e6e8631e and is covered by the advisory GHSA-wfqg-88r5-55f6 and MDEV-40670). Where immediate upgrade is not possible, the most effective compensating control is to uninstall or not load the optional qc_info plugin (INSTALL SONAME / UNINSTALL SONAME or remove it from plugin-load), which eliminates the vulnerable code path entirely at the cost of losing the INFORMATION_SCHEMA.QUERY_CACHE_INFO diagnostic view; this is low-impact because the plugin is not part of a default installation. Additionally, ensure the deprecated query cache is disabled (query_cache_type=OFF, query_cache_size=0), since the bug requires a cached query to be present - this also avoids the well-known query-cache scalability overhead. As a further restriction, revoke unnecessary SELECT privileges on INFORMATION_SCHEMA and limit database accounts, since exploitation requires valid credentials (PR:L) able to run queries and read the query cache metadata view. None of these workarounds address the underlying out-of-bounds read; upgrading remains the definitive fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 6 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
MariaDB's query cache stores result sets and metadata about previously executed statements, and the optional qc_info plugin exposes that metadata through the INFORMATION_SCHEMA.QUERY_CACHE_INFO virtual table. The root cause is a CWE-125 out-of-bounds read: when processing the cached representation of a query containing embedded null bytes, the plugin's row-fill routine (qc_info_fill_table in plugin/qc_info/qc_info.cc) miscomputes the database-name length and reads past the end of a heap-allocated buffer. The upstream fix in commit 0931994096b84ecc9ffc8eb3517c7e09e6e8631e clamps that length with 'set_if_smaller(db_length, (size_t)(key + key_length - QUERY_CACHE_FLAGS_SIZE - db))', bounding the pointer arithmetic to the actual cached key buffer, and adds a corresponding regression test (mysql-test/suite/plugins/t/qc_info.test). The CPE cpe:2.3:a:mariadb:server:*:*:*:*:*:*:*:* reflects that all branches carrying the qc_info plugin code prior to the patched releases are in scope. Because the vulnerable path is only reachable through the qc_info plugin and requires the deprecated query cache to be active, the exposure surface is substantially narrower than the CVSS scope-change flag (S:C) might suggest.
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:C/C:L/I:N/A:L
Network-reachable query requires an authenticated session (PR:L); shared query cache justifies S:C; impact is partial memory disclosure (C:L) and possible crash (A:L), no integrity effect.
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 qc_info plugin could be confused by a query containing embedded null bytes. Reading information_schema.query_cache_info after such a query was cached could access data beyond the end of a heap-allocated buffer, potentially disclosing adjacent memory or crashing the server. 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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-95917
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB