Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted SQL or malicious SQLite DB with crafted view
-
DeliveryIssue count(*) over large multi-row VALUES clause
-
ExploitCount-of-view optimization builds deeply nested TK_PLUS expression tree
-
ExecutionRecursive sqlite3ExprDeleteNN() exhausts C stack
-
ImpactHost process crashes (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | Exploitation requires the attacker to control SQL submitted to SQLite, or to supply a SQLite database file containing a crafted view, such that a count(*) is evaluated over a large multi-row VALUES clause - the specific trigger that drives the count-of-view optimization into deeply nested TK_PLUS expressions and overflows the C stack during recursive expression freeing. Limiting factors per the CVSS 4.0 vector: the vector is Local (AV:L) with passive user interaction (UI:P), so the malicious SQL or database file must reach and be parsed by a SQLite instance - applications that only ever run trusted, fixed queries over trusted databases are not reachable. Impact is denial of service only (VA:H, with VC:N/VI:N): a crash of the host process, with no confidentiality or integrity effect and no code execution. |
| Impact | This is a medium-severity denial-of-service issue, and the signals are consistent rather than conflicting. The vendor CVSS 4.0 base score is 6.8 with vector AV:L/AC:L/AT:N/PR:N/UI:P and impact confined to availability (VA:H; VC:N/VI:N) - i.e. a crash, not code execution or data compromise, matching CWE-674 (uncontrolled recursion). The attack vector is Local with passive user interaction, so this is not a remotely-reachable network bug by default; it requires the attacker's SQL or database file to actually reach a SQLite instance that will parse it. There is no CISA KEV listing and no EPSS score in the supplied data, so there is no evidence of active or widespread exploitation. The vuln.today decision label is 'this_month', indicating a routine-but-non-ignorable patch priority rather than an emergency. Net assessment: real but bounded risk - genuinely exploitable and reliable where an application feeds untrusted SQL or opens untrusted SQLite database files, but low urgency where SQLite only ever processes trusted, application-controlled queries. The headline worry is SQLite's enormous deployment footprint, not the per-instance severity. |
| Exploit ScenarioDerived | An application lets an attacker influence SQL (e.g. an analytics/query feature) or open an attacker-supplied SQLite database file containing a crafted view. The attacker issues a count(*) over a very large multi-row VALUES clause, which the count-of-view optimization turns into a deeply nested chain of TK_PLUS expressions; recursive teardown in sqlite3ExprDeleteNN() exhausts the C stack and crashes the host process. A public research write-up (abraxaslabs.tech) and a VulnCheck advisory describe the issue, but the input does not confirm packaged working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Denial of service in SQLite before 3.54.0 allows an attacker who can submit SQL or supply a crafted database file to crash the host process by forcing count(*) to be evaluated over a large multi-row VALUES clause. The count-of-view optimization then builds a deeply nested TK_PLUS expression whose recursive destruction in sqlite3ExprDeleteNN() exhausts the C stack. The issue is local under the CVSS 4.0 vector (AV:L, UI:P) and affects availability only; it is not listed in CISA KEV and no public exploit code is identified in the available data at time of analysis.
RemediationAI
Upgrade to SQLite 3.54.0 or later; the fix is in the 3.54.0 release and in upstream commit https://github.com/sqlite/sqlite/commit/eff50a067c55f972909e7780e506e91382d08de2 (src info https://sqlite.org/src/info/ab621a3e11ee4acc), with release notes at https://sqlite.org/releaselog/3_54_0.html. For embedded deployments, update the bundled SQLite library and rebuild the application; confirming the bundled version is at least 3.54.0 is necessary because updating only the host application does not update SQLite. If immediate upgrade is not possible, reduce exposure by refusing untrusted SQL and not opening untrusted SQLite database files, since those are the two described attack vectors; this is a containment measure that leaves the recursion bug present and may break functionality for applications that legitimately accept user-supplied queries or database files. No other vendor workaround is specified in the available references.
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
SQLite's query planner contains a count-of-view optimization in src/select.c, countOfViewOptimization(), that handles count(*) queries over views. With a view built from a large multi-row VALUES clause, the optimization can generate an expression tree containing deeply nested TK_PLUS nodes. When the statement is torn down, sqlite3ExprDeleteNN() frees that tree recursively; at sufficient nesting depth the C stack is exhausted and the host process crashes. This maps to CWE-674, uncontrolled recursion, in the recursive expression-freeing path. The upstream fix, commit eff50a067c55f972909e7780e506e91382d08de2 (src info ab621a3e11ee4acc), adds an error check in countOfViewOptimization() so the generated expression is deleted and cleared if parsing has already failed; the manifest entry describes preventing the count-of-view expression from getting too deep and causing a CPU stack overflow. The affected CPE is cpe:2.3:a:sqlite:sqlite:*:*:*:*:*:*:*:* for versions before 3.54.0.
Know when Sqlite 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
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Attacker-supplied SQL or DB file must be processed locally by the app (AV:L, UI:R); no auth needed to craft the input (PR:N); crash-only, so C:N/I:N/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
SQLite before 3.54.0 contains a stack exhaustion vulnerability in countOfViewOptimization() that allows attackers to crash the host process via count(*) over a large multi-row VALUES clause. Attackers supplying SQL or a database file with a crafted view can trigger deeply nested TK_PLUS expressions whose recursive freeing in sqlite3ExprDeleteNN() exhausts the C stack, causing denial of service.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Multiple unspecified vulnerabilities in SQLite before 3.8.10.2, as used in Apple iOS before 9, have unknown impact and a
SQLite3 from 3.6.0 to and including 3.27.2 is vulnerable to heap out-of-bound read in the rtreenode() function when hand
SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes allows an array-bounds overflow if billions of bytes are used in a
The getNodeSize function in ext/rtree/rtree.c in SQLite through 3.19.3, as used in GDAL and other products, mishandles u
Memory corruption in SQLite versions before 3.50.2 allows network-based attackers with low privileges to manipulate aggr
An exploitable use after free vulnerability exists in the window function functionality of Sqlite3 3.26.0. Rated high se
Arbitrary DLL loading in SQLite's sqldiff.exe utility on Windows allows attackers to achieve code execution by abusing t
Memory corruption in SQLite versions before 3.53.2 enables attackers to crash processes, exhaust memory, or potentially
SQLite 3.32.2 has a use-after-free in resetAccumulator in select.c because the parse tree rewrite for window functions i
SQLite through 3.31.1 allows attackers to cause a denial of service (segmentation fault) via a malformed window-function
A segmentation fault can occur in the sqlite3.exe command-line component of SQLite 3.36.0 via the idxGetTableInfo functi
OAuth and SCIM identity confusion in Open WebUI 0.6.41-0.10.x (SQLite-backed deployments only) allows unauthenticated re
EUVD-2026-113835
GHSA-24xm-6g3f-6mqq
NVD
CVE.org
EPSS
Exploit-DB