Skip to main content

SQLite EUVDEUVD-2026-113787

| CVE-2026-119376 MEDIUM
Uncontrolled Recursion (CWE-674)
2026-10-30 VulnCheck GHSA-8chh-5w6j-2xwf
6.8
CVSS 4.0 · Vendor: VulnCheck
Temporal: 5.5
View

Attack ChainAIDerived

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

  1. Access
    Supply SQL or untrusted DB view with ~175,000 chained COLLATE operators
  2. Exploit
    Bypass SQLITE_LIMIT_EXPR_DEPTH, drive unbounded recursion in sqlite3WalkExprNN()
  3. Impact
    Exhaust stack and crash the host process (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 text (or an untrusted database/view) that SQLite parses, and to include approximately 175,000 chained COLLATE postfix operators on an expression so recursion in sqlite3WalkExprNN() exceeds the stack. Key limiting factors: the vector is local (AV:L) and involves passive user interaction (UI:P) such as opening an untrusted database, the impact is availability-only (process crash, no data exposure or code execution), and the application must actually route untrusted SQL or untrusted database files into SQLite - hardened apps that only run fixed, parameterized queries are not exposed. Full remediation is upgrading to SQLite 3.54.0, which enforces the depth check for COLLATE.

Impact

This is a moderate, availability-only issue rather than a top-priority emergency. The CVSS 4.0 base score is 6.8 with VA:H but VC:N/VI:N - the only impact is a process crash (CWE-674 uncontrolled recursion / stack exhaustion), with no confidentiality or integrity loss and no code execution. The vector is AV:L/AC:L/PR:N/UI:P: low complexity and no privileges, but a local attack vector and passive user interaction, meaning exploitation hinges on the attacker being able to feed untrusted SQL text or an untrusted database/view to the SQLite engine. The vuln.today decision label is 'this_month', not act_now or emergency, which is consistent with a reliably-triggerable but non-critical DoS. There is no CISA KEV listing and no EPSS score was supplied, so widespread automated exploitation is neither confirmed nor quantifiable - the absence of EPSS is a data gap, not evidence of low risk. A public research write-up (abraxaslabs) and a VulnCheck advisory describe the flaw, and the vendor fix ships a regression test demonstrating the trigger, so the mechanism is well understood even though no weaponized exploit is confirmed. Net: treat as a routine-priority patch - real and easy to trigger wherever untrusted SQL reaches SQLite, but bounded to denial of service.

Exploit ScenarioDerived

An attacker who can submit SQL to an application backed by SQLite, or cause it to open an untrusted database containing a crafted view, supplies an expression with roughly 175,000 chained COLLATE postfix operators. This bypasses the SQLITE_LIMIT_EXPR_DEPTH guard and drives unbounded recursion through sqlite3WalkExprNN(), exhausting the stack and crashing the process. A public PoC reference and vendor regression test demonstrate the trigger; they are not verified as working weaponized exploit code, and the attack requires a local vector plus the application passing attacker-controlled SQL or opening an untrusted database.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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

SQLite releases before 3.54.0 fail to enforce SQLITE_LIMIT_EXPR_DEPTH for chained COLLATE postfix operators, so an expression carrying roughly 175,000 COLLATE clauses drives unbounded recursion in sqlite3WalkExprNN() and crashes the process. The flaw is rated 6.8 with local attack vector, no privileges, and passive user interaction; impact is availability-only - no data disclosure or code execution - and exploitation requires the application to parse attacker-controlled SQL text or open an untrusted database/view. An upstream fix commit and the 3.54.0 release address the issue; no public exploit code or CISA KEV entry is associated with this CVE at time of analysis, and EPSS data was not provided.

RemediationAI

Upgrade to SQLite 3.54.0 or later, which adds the expression-height check for COLLATE and rejects chains exceeding SQLITE_LIMIT_EXPR_DEPTH with 'Expression tree is too large' (release notes: https://sqlite.org/releaselog/3_54_0.html; fix commit: https://github.com/sqlite/sqlite/commit/d54522a5b832422ab893a1e9fa7a99ab314ea4e2, mirrored at https://sqlite.org/src/info/252c0b7bf5a727d2). Applications that bundle SQLite must rebuild against 3.54.0 rather than relying on an OS package alone. Because exploitation depends on untrusted SQL or database/view input reaching the parser, a compensating control for systems that cannot upgrade immediately is to prevent untrusted SQL text and attacker-supplied database files from being fed to SQLite - enforce fixed, parameterized statements in application code and avoid opening databases from untrusted sources; the trade-off is loss of functionality for any feature that legitimately accepts ad-hoc SQL or third-party database files. Lowering SQLITE_MAX_EXPR_DEPTH at compile time does not by itself block this technique, since the vulnerable path skipped the depth accounting entirely; do not treat that as a fix. Patch availability is confirmed from the vendor, and no public exploit code or active exploitation is reported in the available data.

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

SQLite maintains a parse-time guard, SQLITE_MAX_EXPR_DEPTH (surfaced via SQLITE_LIMIT_EXPR_DEPTH), that rejects expression trees deeper than the configured limit with 'Expression tree is too large'. The COLLATE postfix operator is applied by sqlite3ExprAddCollateToken()/sqlite3ExprAddCollateString() in src/expr.c, and prior to the fix these functions did not increment the new expression node's nHeight nor call sqlite3ExprCheckHeight() when attaching a collation name, while the surrounding interfaces also took a const Parse* and therefore could not report the error. An attacker-controlled statement or view containing a very long COLLATE chain therefore builds an arbitrarily deep expression tree that passes the depth check and later causes unbounded recursion while the tree is walked in sqlite3WalkExprNN(), exhausting the stack and terminating the process - CWE-674 (uncontrolled recursion). The upstream commit d54522a5b832422ab893a1e9fa7a99ab314ea4e2 (mirrored as sqlite.org/src/info/252c0b7bf5a727d2) changes the Parse* parameters to non-const, sets pNew->nHeight = pExpr->nHeight+1, invokes sqlite3ExprCheckHeight() under SQLITE_MAX_EXPR_DEPTH>0, and adds sqllimits1-9.1b to test/sqllimits1.test to confirm the depth error is raised for a COLLATE chain. The affected product per CPE is cpe:2.3:a:sqlite:sqlite, all versions below 3.54.0 per the EUVD affected-version data.

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 6.8 MEDIUM
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
CIRCL (temporal) 5.5 MEDIUM
vuln.today AI 5.5 MEDIUM

Attacker supplies untrusted SQL/database locally (AV:L) with low complexity and no privileges (AC:L/PR:N); opening an untrusted DB implies UI:R; impact is a crash only, so C:N/I:N/A:H.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/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
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

SQLite before 3.54.0 contains a stack exhaustion vulnerability that allows attackers to bypass the SQLITE_LIMIT_EXPR_DEPTH limit by chaining COLLATE postfix operators. Attackers can supply roughly 175,000 chained COLLATE operators in SQL or an untrusted database view to trigger unbounded recursion in sqlite3WalkExprNN() and crash the process.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Ubiquitous
SQLite is embedded across browsers, mobile OSes, and countless applications
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
High

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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