Skip to main content

SQLite FTS5 CVE-2026-119374

| EUVDEUVD-2026-113785 HIGH
Out-of-bounds Write (CWE-787)
2026-10-30 VulnCheck GHSA-gr85-mf7f-6pq7
8.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted SQLite database to target
  2. Delivery
    Victim app opens DB with FTS5 and secure-delete enabled
  3. Exploit
    DELETE operation triggers out-of-bounds write in fts5DoSecureDelete
  4. Execution
    Heap memory corruption via crafted footer key offsets
  5. Impact
    Application crash / denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
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

Exploitation requires all of the following concrete preconditions: (1) SQLite must be built with the FTS5 full-text-search extension compiled in; (2) secure-delete mode must be enabled (SQLite's secure_delete pragma is OFF by default, so this is a non-default configuration); (3) the attacker must supply a database file containing an FTS5 index with corrupted/crafted footer key offsets; and (4) the victim application must open that untrusted database and execute a DELETE against the FTS5 table, which is the operation that invokes fts5DoSecureDelete(). Limiting factors that reduce realistic risk: the attack vector is LOCAL (the malicious database must first reach the target and be processed, not sent over a network), it needs the victim/application to perform the delete (UI:P / user interaction), FTS5 is not always compiled in, and secure-delete is not enabled by default - so default SQLite deployments that do not process attacker-controlled database files are not exposed.

Impact

The input CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P, VC:H/VI:H/VA:H) yields 8.5 (high), but the signals pull in different directions. Attack vector is LOCAL and requires passive user interaction (UI:P), meaning an attacker must get a crafted SQLite database in front of a victim application and have it operated on - this is not remote, network-facing exploitation. The vuln.today decision label is 'this_week', not act_now or emergency. There is no CISA KEV listing (not confirmed actively exploited) and no EPSS score was provided, so widespread or automated exploitation is not evidenced. A public PoC reference exists (VulnCheck/abraxaslabs research plus a reproducer database embedded in the vendor's fts5corruptB.test), though the input does not confirm it as a working weaponized exploit. Note a discrepancy to verify: the published CVSS claims full confidentiality AND integrity AND availability impact (VC:H/VI:H/VA:H), yet the description only states that heap memory is corrupted and the application crashes - it does not demonstrate data disclosure or code execution, so the confidentiality/RCE claim is not substantiated by the available description. Net: a genuine memory-safety defect worth patching on the stated 'this week' cadence, with elevated priority for software that opens untrusted SQLite files with FTS5 and secure-delete, but the local vector, required user interaction, and non-default preconditions make it lower real-world risk than the 8.5 alone suggests.

Exploit ScenarioDerived

An attacker crafts a malicious SQLite database containing an FTS5 index with corrupted footer key offsets and delivers it to a target application that opens untrusted database files with FTS5 compiled in and secure-delete enabled. When the application performs a DELETE against the FTS5 table, fts5DoSecureDelete() writes past the leaf page buffer, corrupting the heap and crashing the process. A reproducer database exists in the vendor's test suite and in the VulnCheck/abraxaslabs research writeup, but the input does not confirm it as verified working exploit code.

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

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

Alert me

AnalysisAIv1 – Oct 30, 2026

Heap buffer overflow in SQLite's FTS5 full-text extension (all releases before 3.54.0) allows an attacker who supplies a crafted database file to write past a leaf-page buffer when the FTS5 secure-delete path processes a corrupted index, corrupting heap memory and potentially crashing the host application. Exploitation is not free-standing: it requires FTS5 to be compiled in, the non-default secure_delete pragma to be enabled, and the victim application to open the untrusted database and execute a DELETE against the poisoned FTS5 table - prerequisites that the independent assessment captures as a local vector with user interaction (CVSS 3.1 AV:L/AC:L/PR:N/UI:R/C:N/I:H/A:H), which is more constrained than the input CVSS 4.0 score of 8.5 (AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H). SQLite 3.54.0 contains the upstream fix; the supplied intelligence shows no CISA KEV entry and no confirmed working exploit code, and the vuln.today decision label is this_week.

RemediationAI

Upgrade to SQLite 3.54.0 or later, which is the version given in the supplied patch data and release log (https://sqlite.org/releaselog/3_54_0.html); the fix is the upstream commit d9de6eedbe918c074c7556400fa21df5960704d9, mirrored at https://sqlite.org/src/info/9cd4f9e920, so embedded deployments must rebuild or replace the bundled SQLite library rather than rely on a system package alone. Where an immediate upgrade is not possible, keep the secure_delete pragma disabled - it is off by default, and enabling it is what routes deletes through fts5DoSecureDelete(); the trade-off is that deleted content may persist in free pages and remain recoverable from the file, which matters for confidentiality-sensitive workloads. Refuse to open untrusted or attacker-supplied SQLite database files with a vulnerable build, or process them only inside a sandboxed, least-privilege worker, and compile FTS5 out entirely if the application does not use full-text search. The primary vendor fix should be tracked through the VulnCheck advisory at https://www.vulncheck.com/advisories/sqlite-before-3.54.0-heap-buffer-overflow-via-fts5-fts5dosecuredelete and the technical analysis at https://abraxaslabs.tech/research/sqlite-fts5-securedel.

Affected VersionsENISA

SQLite 0 <3.54.0

Affected Packages

euvd sqlite fix: 3.54.0

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

FTS5 stores full-text index content in segment leaf pages whose footers encode key offsets as varints. fts5DoSecureDelete() is the routine that rewrites a leaf page when secure-delete mode is active, walking the stored keys and emitting adjusted key deltas into a buffer sized to the original page. When an attacker-controlled database contains a corrupted FTS5 index with crafted footer key offsets, the input key pointer (iKeyIn) can advance past the valid page boundary and subsequent writes land beyond the heap-allocated page buffer - a classic CWE-787 out-of-bounds write. The upstream fix, commit d9de6eedbe918c074c7556400fa21df5960704d9 (sqlite.org src info 9cd4f9e920), adds a bounds check of the form if( iKeyIn>nPg ){ FTS5_CORRUPT_IDX(p); break; }, promotes iKeyIn/iKeyOut to 64-bit integers, separates the output length into nNewPg, and gates the final fts5DataWrite on p->rc==SQLITE_OK so a corrupted page is never written back. A regression fixture was added to ext/fts5/test/fts5corruptB.test using a hexdb PoC database. The trigger described in the available sources is the secure-delete DELETE path against a crafted FTS5 table; how the flaw might be reached outside that path is not described.

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

Vendor (VulnCheck) PRIMARY 8.5 HIGH
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

A local attacker-supplied database must be processed by the victim app (AV:L, UI:R, PR:N); evidence shows only heap corruption and a crash, so I:H/A:H but C:N with no disclosure described.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

SQLite before 3.54.0 built with FTS5 contains a heap buffer overflow in fts5DoSecureDelete() that allows attackers to write past the leaf page buffer via crafted footer key offsets. Attackers can supply a database file with a corrupted FTS5 index that, when deleted from with secure-delete enabled, corrupts heap memory and crashes the application.

Executive ViewAI

Why It Matters

A high-severity heap buffer overflow in SQLite's FTS5 extension (CVE-2026-119374) affects all releases before 3.54.0 and could enable memory corruption when untrusted databases are opened, posing risks to products that embed SQLite with FTS5 and secure_delete enabled. Leadership should prioritize updating to the patched version (3.54.0) to protect data integrity and availability, as the vulnerability requires user interaction but can lead to serious operational disruption.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Ubiquitous
SQLite is embedded in nearly all OSes, browsers, phones and apps
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.2%
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
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

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.

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.

More in Sqlite

View all
CVE-2015-5895 CRITICAL POC
10.0 Sep 18

Multiple unspecified vulnerabilities in SQLite before 3.8.10.2, as used in Apple iOS before 9, have unknown impact and a

CVE-2019-8457 CRITICAL
9.8 May 30

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

CVE-2022-35737 HIGH POC
7.5 Aug 03

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

CVE-2017-10989 CRITICAL
9.8 Jul 07

The getNodeSize function in ext/rtree/rtree.c in SQLite through 3.19.3, as used in GDAL and other products, mishandles u

CVE-2025-6965 HIGH POC
7.2 Jul 15

Memory corruption in SQLite versions before 3.50.2 allows network-based attackers with low privileges to manipulate aggr

CVE-2019-5018 HIGH POC
8.1 May 10

An exploitable use after free vulnerability exists in the window function functionality of Sqlite3 3.26.0. Rated high se

CVE-2025-71316 CRITICAL POC
9.2 Jun 04

Arbitrary DLL loading in SQLite's sqldiff.exe utility on Windows allows attackers to achieve code execution by abusing t

CVE-2026-11822 MEDIUM POC
6.8 Jun 09

Memory corruption in SQLite versions before 3.53.2 enables attackers to crash processes, exhaust memory, or potentially

CVE-2020-13871 HIGH POC
7.5 Jun 06

SQLite 3.32.2 has a use-after-free in resetAccumulator in select.c because the parse tree rewrite for window functions i

CVE-2020-11655 HIGH POC
7.5 Apr 09

SQLite through 3.31.1 allows attackers to cause a denial of service (segmentation fault) via a malformed window-function

CVE-2021-36690 HIGH POC
7.5 Aug 24

A segmentation fault can occur in the sqlite3.exe command-line component of SQLite 3.36.0 via the idxGetTableInfo functi

CVE-2026-87016 HIGH POC
8.1 Sep 09

OAuth and SCIM identity confusion in Open WebUI 0.6.41-0.10.x (SQLite-backed deployments only) allows unauthenticated re

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