CVE-2016-6153
Medium · 5.9CVSS
5.9
EPSS
0.5%
Published
Sep 26, 2016
CISA due date
—
Cloudanix analysis
Older database software could let someone already on the same computer reach private information or make the program stop working by misusing ordinary folders for temporary work files.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Other
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
SQLite uses the current working directory for temporary files due to an improper search algorithm in os_unix.c, allowing local interference with file creation that can expose data, trigger crashes, or enable other local impacts.
Why it matters to the business
Systems relying on older SQLite versions face limited local risks of data exposure or application disruption, with low likelihood of widespread exploitation given the age and local-only nature of the issue.
How an attack unfolds
A local attacker identifies an SQLite process running from a writable directory, places crafted files there to influence temporary file operations, and triggers database activity to cause unintended file access or application instability.
How to fix it
Upgrade SQLite to version 3.13.0 or later across all affected products including sqlite, fedora, and opensuse leap to enforce secure temporary directory selection.
How to confirm the fix worked
Confirm installed SQLite version is 3.13.0 or newer; verify temporary files are created only in designated secure locations rather than the current working directory.
Typical attack path
- Obtain local access on the target system
- Locate SQLite processes using the current working directory
- Prepare directory contents to affect temporary file handling
- Induce SQLite operations that exercise the flawed temp directory logic
How to detect it
Review system and application logs for SQLite temporary file creation in unexpected directories or associated crashes; examine process execution context for working directory usage patterns.
What your security team should do
- Apply the 3.13.0 update immediately on all SQLite deployments
- Review applications that bundle or depend on older SQLite for local file handling assumptions
- Restrict local user write access to directories from which database processes execute
The record
os_unix.c in SQLite before 3.13.0 improperly implements the temporary directory search algorithm, which might allow local users to obtain sensitive information, cause a denial of service (application crash), or have unspecified other impact by leveraging use of the current working directory for temporary files.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | sqlite | 0 | 2.8.17-15+deb10u1 |
| Debian:11 | sqlite3 | 0 | 3.13.0-1 |
| Debian:12 | sqlite3 | 0 | 3.13.0-1 |
| Debian:13 | sqlite3 | 0 | 3.13.0-1 |
| Debian:14 | sqlite3 | 0 | 3.13.0-1 |
| Debian:7 | sqlite3 | 0 | 3.7.13-1+deb7u3 |
| Mageia:5 | sqlite3 | 0 | 3.8.10.2-1.2.mga5 |
| Mageia:8 | sqlite | 0 | 2.8.17-26.1.mga8 |
| SUSE:HPE Helion OpenStack 8 | sqlite3 | 0 | 3.36.0-9.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | sqlite3 | 0 | 3.8.10.2-3.1 |
| SUSE:Linux Enterprise Server 11 SP4 | sqlite3 | 0 | 3.7.6.3-1.4.6.1 |
| SUSE:Linux Enterprise Server 12 SP1 | sqlite3 | 0 | 3.8.10.2-3.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | sqlite3 | 0 | 3.36.0-9.18.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-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.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | sqlite3 | 0 | 3.7.6.3-1.4.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | sqlite3 | 0 | 3.8.10.2-3.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.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 11 SP4 | sqlite3 | 0 | 3.7.6.3-1.4.6.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | sqlite3 | 0 | 3.8.10.2-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | sqlite3 | 0 | 3.36.0-9.18.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 |
| SUSE:Studio Onsite 1.3 | sqlite3 | 0 | 3.7.6.3-1.4.6.1 |
| Ubuntu:14.04:LTS | sqlite3 | 0 | 3.8.2-1ubuntu2.2+esm1 |
| Ubuntu:16.04:LTS | sqlite3 | 0 | 3.11.0-1ubuntu1.2 |
| Ubuntu:18.04:LTS | sqlite3 | 0 | 3.22.0-1ubuntu0.1 |
| Ubuntu:Pro:14.04:LTS | sqlite3 | 0 | 3.8.2-1ubuntu2.2+esm1 |
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 sqlite3
- CVE-2020-35525 In SQlite 3.31.1, a potential null pointer derreference was found in the INTERSEC query… Also affects sqlite3
- 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-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
- CVE-2017-5404 A use-after-free error can occur when manipulating ranges in selections with one node… Also affects sqlite3