CVE-2020-35525
High · 7.5CVSS
7.5
EPSS
1.5%
Published
Sep 1, 2022
CISA due date
—
Cloudanix analysis
A bug in widely used database software can let attackers crash systems by sending certain database queries, interrupting normal operations.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Null pointer dereference during INTERSECT query processing in SQLite leads to memory corruption and process termination.
Why it matters to the business
Database-backed applications and services can be made unavailable through crafted queries, resulting in operational downtime and potential data access loss until the instance is restarted.
How an attack unfolds
An attacker with the ability to submit SQL statements to a vulnerable SQLite instance crafts an INTERSECT query that triggers the null pointer dereference, causing an immediate crash and denial of service.
How to fix it
Upgrade SQLite to the latest available version that resolves the null pointer dereference in INTERSECT processing; apply vendor patches or rebuild dependent applications with the fixed library.
How to confirm the fix worked
Execute regression test suites containing INTERSECT queries against the updated SQLite build and confirm absence of crashes; perform fuzzing or static analysis targeting the INTERSECT code path.
Typical attack path
- Identify an application or service exposing SQLite query interfaces
- Submit a crafted SQL statement containing an INTERSECT clause designed to dereference a null pointer
- Observe application or process crash resulting in denial of service
How to detect it
Review application and database logs for unexpected SQLite process terminations or segmentation faults correlated with INTERSECT queries; inspect crash dumps for null dereference signatures in query processing code.
What your security team should do
- Prioritize upgrade of all SQLite instances to a patched release
- Restrict untrusted SQL execution surfaces where possible
- Implement query logging and anomaly detection for INTERSECT usage patterns
- Monitor EPSS and exploit maturity indicators for any future increase in risk
The record
In SQlite 3.31.1, a potential null pointer derreference was found in the INTERSEC query processing.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | lemon | 0 | 3.26.0-16.el8_6 |
| AlmaLinux:8 | sqlite | 0 | 3.26.0-16.el8_6 |
| AlmaLinux:8 | sqlite-devel | 0 | 3.26.0-16.el8_6 |
| AlmaLinux:8 | sqlite-doc | 0 | 3.26.0-16.el8_6 |
| AlmaLinux:8 | sqlite-libs | 0 | 3.26.0-16.el8_6 |
| Bitnami | sqlite | 3.31.1 | No fix |
| Bitnami | sqlite | 3.31.1 | 3.31.2 |
| Debian:10 | sqlite3 | 0 | 3.27.2-3+deb10u2 |
| Debian:11 | sqlite3 | 0 | 3.32.0-1 |
| Debian:12 | sqlite3 | 0 | 3.32.0-1 |
| Debian:13 | sqlite3 | 0 | 3.32.0-1 |
| Red Hat:enterprise_linux:8::appstream | lemon | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | lemon-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-analyzer-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-debugsource | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-devel | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-doc | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-libs | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-libs-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::appstream | sqlite-tcl-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | lemon | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | lemon-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-analyzer-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-debugsource | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-devel | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-doc | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-libs | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-libs-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Red Hat:enterprise_linux:8::baseos | sqlite-tcl-debuginfo | 0 | 0:3.26.0-16.el8_6 |
| Rocky Linux:8 | sqlite | 0 | 0:3.26.0-16.el8_6 |
| Ubuntu:18.04:LTS | sqlite3 | 0 | 3.22.0-1ubuntu0.6 |
| Ubuntu:20.04:LTS | sqlite3 | 0 | 3.31.1-4ubuntu0.4 |
| Ubuntu:22.04:LTS | sqlite3 | 0 | 3.37.2-2 |
| Ubuntu:Pro:14.04:LTS | sqlite3 | 0 | 3.8.2-1ubuntu2.2+esm4 |
| Ubuntu:Pro:16.04:LTS | sqlite3 | 0 | 3.11.0-1ubuntu1.5+esm1 |
Related vulnerabilities
- CVE-2025-6965 There exists a vulnerability in SQLite versions before 3.50.2 where the number of… Also affects lemon
- CVE-2022-35737 SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes allows an array-bounds overflow if… Also affects lemon
- CVE-2024-0232 A heap use-after-free issue has been identified in SQLite in the jsonParseAddNodeArray()… Also affects sqlite
- CVE-2022-46908 SQLite through 3.40.0, when relying on --safe for execution of an untrusted CLI script… Also affects sqlite
- CVE-2019-8457 SQLite3 from 3.6.0 to and including 3.27.2 is vulnerable to heap out-of-bound read in the… Also affects sqlite3
- CVE-2016-6153 os_unix.c in SQLite before 3.13.0 improperly implements the temporary directory search… Also affects sqlite3
- CVE-2013-7443 Buffer overflow in the skip-scan optimization in SQLite 3.8.2 allows remote attackers to… Also affects sqlite3
- CVE-2019-13734 Out of bounds write in SQLite in Google Chrome prior to 79.0.3945.79 allowed a remote… Also affects lemon