Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain SQL query access to an FTS3/FTS4 table
-
ExploitCraft MATCH query combining OR and NEAR with snippet()
-
ExecutionTrigger use-after-free of cached position-list pointers in fts3BestSnippet()
-
ImpactRead freed heap and crash the process
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires SQLite compiled with FTS3/FTS4 support AND the non-default compile-time option SQLITE_ENABLE_FTS3_PARENTHESIS, and an FTS3/FTS4 virtual table the attacker can query. The attacker must be able to execute a full-text MATCH query that combines OR and NEAR operators together with a snippet() call (e.g. MATCH '"a" OR "" bbb NEAR 0 NEAR 1' with snippet()). Limiting factors: this is not reachable at the SQLite layer over a network by itself (AV:L) - an attacker needs the ability to run/influence SQL against the FTS table via the host application; the required FTS3_PARENTHESIS build flag is not enabled in default SQLite builds, substantially narrowing the exposed population; impact is limited to a crash (DoS) with no confirmed code execution or integrity impact. |
| Impact | This is a genuine but moderate-priority issue (CVSS 4.0 base 6.8, Medium), not a drop-everything emergency, and the signals are largely consistent. The vendor CVSS vector is AV:L/AC:L/PR:N/UI:P with only availability impact (VA:H; VC:N/VI:N), meaning the realistic outcome is a process crash/denial of service rather than code execution or data theft. It is NOT in CISA KEV and no EPSS score was supplied, so there is no evidence of active or widespread exploitation; the vuln.today decision label is 'this_month', indicating routine patching urgency rather than act_now/emergency. A public PoC reference exists (abraxaslabs research writeup plus a reproducing regression test added in the fix), so the trigger is well understood, but it is not verified as weaponized exploit code. One notable tension: the description states the flaw lets an attacker 'read freed heap memory', which implies a possible information-disclosure angle, yet the vendor vector sets VC:N (no confidentiality impact) and treats it purely as a crash - this discrepancy should be verified with the vendor/VulnCheck advisory before ruling out any heap-content leakage into snippet() output. Overall: a real DoS bug constrained to a non-default build configuration and local SQL-execution reach, warranting patching on a normal cycle, not crisis response. |
| Exploit ScenarioDerived | An attacker able to submit crafted full-text search queries to an application that uses SQLite built with FTS3/FTS4 and SQLITE_ENABLE_FTS3_PARENTHESIS runs a MATCH query combining OR and NEAR operators together with snippet(), causing fts3BestSnippet() to follow dangling cached position-list pointers. This reads freed heap memory and crashes the hosting process, producing a denial of service. A public PoC reference and a concrete reproducing query exist, but are not verified as working weaponized exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
A use-after-free flaw in SQLite's FTS3/FTS4 snippet() support allows an attacker who can issue full-text queries against an FTS3/FTS4 virtual table to force the process to read freed heap memory and crash, yielding local denial of service rather than code execution or data disclosure of integrity value. All SQLite releases before 3.54.0 are affected, but only builds compiled with FTS3/FTS4 enabled together with the non-default option SQLITE_ENABLE_FTS3_PARENTHESIS carry the vulnerable configuration; the assessed vector (CVSS:3.1 AV:L/AC:L/PR:L/UI:N/S:N/C:N/I:N/A:H) requires local access and the ability to run or influence SQL reaching such a table. The vendor shipped a fix in SQLite 3.54.0 (commit e4635c4153), the issue is scored 6.8 Medium under CVSS 4.0, and it is not reported as actively exploited (not in CISA KEV); no working exploit code is confirmed in the available sources, and priority is moderate (this_month).
RemediationAI
Vendor-released patch: SQLite 3.54.0. Upgrade the bundled or linked SQLite library to 3.54.0 or later; the fix landed as Fossil check-in e4635c4153 (https://sqlite.org/src/info/e4635c4153) and GitHub commit a87bd2471a9c0606e78d3c3678bcd9cecaa0e731, and the release notes are at https://sqlite.org/releaselog/3_54_0.html. Teams that cannot immediately move to 3.54.0 can remove the vulnerable configuration at build time, since the flaw requires both the FTS3/FTS4 extension and the non-default SQLITE_ENABLE_FTS3_PARENTHESIS option: rebuilding without SQLITE_ENABLE_FTS3_PARENTHESIS, or dropping FTS3/FTS4 from the build entirely, eliminates the affected code path. The trade-off is functional - omitting the parenthesis option removes parenthesised sub-expression support from FTS MATCH queries, and dropping FTS3/FTS4 breaks any schema or query that depends on those virtual table modules, so both should be validated against the application's search features before rollout. No exploitation in the wild is reported (not in CISA KEV), so the fix can be scheduled as routine maintenance rather than an emergency change.
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
FTS3 and FTS4 are SQLite's older full-text search extensions, implemented in ext/fts3/; the vulnerable routine is fts3BestSnippet() in ext/fts3/fts3_snippet.c (referenced at line 561 of version-3.53.4), which walks the parsed MATCH expression with sqlite3Fts3ExprIterate() and the fts3SnippetFindPositions() callback to collect term position lists before generating the highlighted snippet. The defect is CWE-416 (use-after-free): position-list pointers cached during the first expression walk can be invalidated when the expression evaluation is restarted, leaving dangling pointers that subsequent dereferences read as freed heap memory. The upstream fix (commit a87bd2471a9c0606e78d3c3678bcd9cecaa0e731, Fossil e4635c4153) caches pCsr->pExpr in a local and iterates the expression a second time after the initial pass, explicitly to avoid pointers gathered in the first iteration being invalidated by the restart. The trigger requires the SQLITE_ENABLE_FTS3_PARENTHESIS compile-time option, which enables parenthesised sub-expression syntax, and a MATCH query that combines OR with NEAR operators and a snippet() call; the regression test added upstream uses CREATE VIRTUAL TABLE ft0 USING fts4 with the query SELECT snippet(ft0,'') FROM ft0 WHERE ft0 MATCH '"a" OR "" bbb NEAR 0 NEAR 1'. Impact at the SQLite layer is a crash (availability only); the assessed vector records no confidentiality or integrity impact.
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
Needs local ability to run crafted FTS3 queries (AV:L, PR:L); deterministic trigger (AC:L); impact is a process crash only (A:H), with confidentiality excluded per vendor despite 'read freed heap' wording.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
SQLite before 3.54.0 built with FTS3/FTS4 and SQLITE_ENABLE_FTS3_PARENTHESIS contains a use-after-free vulnerability in fts3BestSnippet() caused by dangling cached position-list pointers. Attackers can run a full-text MATCH query combining OR and NEAR operators with snippet() to read freed heap memory and crash the process.
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
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
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-113783
GHSA-p82x-8j2g-f2c7
NVD
CVE.org
EPSS
Exploit-DB