CVE-2019-8457
Critical · 9.8CVSS
9.8
EPSS
45.4%
Published
May 30, 2019
CISA due date
—
Cloudanix analysis
A problem in a widely used database component could allow attackers to read private data from memory or make programs stop working.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap out-of-bounds read in the rtreenode() function when handling invalid rtree tables in SQLite versions 3.6.0 through 3.27.2.
Why it matters to the business
Applications relying on SQLite across Linux distributions and embedded systems risk crashes or unauthorized memory disclosure, potentially exposing sensitive data in high-prevalence database environments.
How an attack unfolds
An attacker supplies a crafted SQLite database containing an invalid rtree table to a vulnerable application and triggers processing via query or API call to trigger the out-of-bounds read.
How to fix it
Upgrade SQLite to a version newer than 3.27.2. Apply available security updates for affected products including Ubuntu Linux, Fedora, and openSUSE Leap.
How to confirm the fix worked
Confirm the deployed SQLite version exceeds 3.27.2; test with databases containing malformed rtree tables to verify absence of out-of-bounds access.
Typical attack path
- Create a malicious SQLite database file embedding an invalid rtree table structure
- Deliver the database file to a target application that uses vulnerable SQLite
- Invoke database operations or queries that exercise the rtreenode() function
- Trigger the heap out-of-bounds read to disclose adjacent memory contents
How to detect it
Review application logs for SQLite errors related to rtree table processing or unexpected crashes when handling untrusted database files.
What your security team should do
- Apply SQLite updates immediately given the high CVSS score and stable EPSS of 0.45
- Inventory all applications and systems using SQLite to identify exposure
- Replace vulnerable database instances in production environments before further exploitation attempts
The record
SQLite3 from 3.6.0 to and including 3.27.2 is vulnerable to heap out-of-bound read in the rtreenode() function when handling invalid rtree tables.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.11 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.12 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.13 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.14 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.15 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.16 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.17 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.18 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.19 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.20 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.21 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.22 | sqlite | 0 | 3.28.0-r0 |
| Alpine:v3.7 | sqlite | 0 | 3.25.3-r1 |
| Alpine:v3.8 | sqlite | 0 | 3.25.3-r1 |
| Alpine:v3.9 | sqlite | 0 | 3.28.0-r0 |
| Debian:11 | db5.3 | 0 | No fix |
| Debian:11 | sqlite3 | 0 | 3.27.2-3 |
| Debian:12 | db5.3 | 0 | 5.3.28+dfsg1-0.9 |
| Debian:12 | sqlite3 | 0 | 3.27.2-3 |
| Debian:13 | db5.3 | 0 | 5.3.28+dfsg1-0.9 |
| Debian:13 | sqlite3 | 0 | 3.27.2-3 |
| Debian:14 | db5.3 | 0 | 5.3.28+dfsg1-0.9 |
| Debian:14 | sqlite3 | 0 | 3.27.2-3 |
| Mageia:6 | sqlite3 | 0 | 3.28.0-1.mga6 |
| Red Hat:enterprise_linux:8::appstream | lemon | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | lemon-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-analyzer-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-debugsource | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-devel | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-doc | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-libs | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-libs-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::appstream | sqlite-tcl-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | lemon | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | lemon-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-analyzer-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-debugsource | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-devel | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-doc | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-libs | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-libs-debuginfo | 0 | 0:3.26.0-6.el8 |
| Red Hat:enterprise_linux:8::baseos | sqlite-tcl-debuginfo | 0 | 0:3.26.0-6.el8 |
| SUSE:Enterprise Storage 4 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:HPE Helion OpenStack 8 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Desktop 12 SP4 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | sqlite3 | 0 | 3.7.6.3-1.4.7.9.1 |
| SUSE:Linux Enterprise Server 11 SP4-LTSS | sqlite3 | 0 | 3.7.6.3-1.4.7.9.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server 12 SP3 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server 12 SP3-BCL | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server 12 SP3-LTSS | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server 12 SP4 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server 12 SP4-LTSS | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server 12 SP5 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server 12-LTSS | sqlite3 | 0 | 3.8.3.1-2.12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:OpenStack Cloud 7 | sqlite3 | 0 | 3.8.10.2-9.9.1 |
| SUSE:OpenStack Cloud 8 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:OpenStack Cloud 9 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:OpenStack Cloud Crowbar 8 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:OpenStack Cloud Crowbar 9 | sqlite3 | 0 | 3.36.0-9.18.1 |
| Ubuntu:14.04:LTS | db5.3 | 0 | 5.3.28-3ubuntu3.1+esm1 |
| Ubuntu:14.04:LTS | sqlite3 | 0 | 3.8.2-1ubuntu2.2+esm1 |
| Ubuntu:16.04:LTS | db5.3 | 0 | 5.3.28-11ubuntu0.2 |
| Ubuntu:16.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:16.04:LTS | sqlite3 | 0 | 3.11.0-1ubuntu1.2 |
| Ubuntu:18.04:LTS | db5.3 | 0 | 5.3.28-13.1ubuntu1.1 |
| Ubuntu:18.04:LTS | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:18.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:18.04:LTS | sqlite3 | 0 | 3.22.0-1ubuntu0.1 |
| Ubuntu:20.04:LTS | db5.3 | 0 | 5.3.28+dfsg1-0.6ubuntu1 |
| Ubuntu:20.04:LTS | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:20.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:22.04:LTS | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:22.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:24.04:LTS | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:24.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:24.10 | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:24.10 | sqlcipher | 0 | No fix |
| Ubuntu:25.04 | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:25.04 | sqlcipher | 0 | No fix |
| Ubuntu:25.10 | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:25.10 | sqlcipher | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | db5.3 | 0 | 5.3.28-3ubuntu3.1+esm1 |
| Ubuntu:Pro:14.04:LTS | sqlite3 | 0 | 3.8.2-1ubuntu2.2+esm1 |
| Ubuntu:Pro:16.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | sqlcipher | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | qtwebengine-opensource-src | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | sqlcipher | 0 | No fix |
Related vulnerabilities
- CVE-2022-35737 SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes allows an array-bounds overflow if… Also affects sqlite
- CVE-2025-6965 There exists a vulnerability in SQLite versions before 3.50.2 where the number of… Also affects sqlite
- CVE-2017-10140 Postfix before 2.11.10, 3.0.x before 3.0.10, 3.1.x before 3.1.6, and 3.2.x before 3.2.2… Also affects db5.3
- CVE-2020-35525 In SQlite 3.31.1, a potential null pointer derreference was found in the INTERSEC query… 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-2024-0232 A heap use-after-free issue has been identified in SQLite in the jsonParseAddNodeArray()… Also affects sqlite3
- CVE-2022-46908 SQLite through 3.40.0, when relying on --safe for execution of an untrusted CLI script… Also affects sqlite3