- Reported
-
- Issued
-
- Package
-
libsqlite3-sys
(crates.io)
- Type
-
Vulnerability
- Categories
-
- Keywords
-
#sqlite
#wal
#uninitialized-memory
#information-disclosure
- Aliases
-
- References
-
- CVSS Score
- 6.8
MEDIUM
- CVSS Details
-
- Attack Complexity
- Low
- Attack Requirements
- None
- Attack Vector
- Local
- Privileges Required
- None
- Availability Impact to the Subsequent System
- None
- Confidentiality Impact to the Subsequent System
- None
- Integrity Impact to the Subsequent System
- None
- User Interaction
- Passive
- Availability Impact to the Vulnerable System
- None
- Confidentiality Impact to the Vulnerable System
- High
- Integrity Impact to the Vulnerable System
- None
- CVSS Vector
- CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
- Patched
-
- Unaffected
-
Description
SQLite versions before 3.54.0 can return uninitialized page-cache memory when a process opens a database file together with a sibling write-ahead-log (-wal) file whose page size differs from the database's. A crafted pair of files can make ordinary queries return stale bytes from the process's memory. The attack vector is local and needs the victim to open the files.
As libsqlite3-sys bundles SQLite when it is built from its bundled source (the bundled feature, which rusqlite's bundled feature enables), it is susceptible to the vulnerability. The releases 0.6.0 to 0.38.2 bundle SQLite 3.13.0 to 3.53.2 and are affected; the earlier releases contain no SQLite source. libsqlite3-sys was updated to bundle the patched version of SQLite in 0.39.0 (SQLite 3.54.0) and 0.39.1 (SQLite 3.54.1), released with rusqlite 0.41. libsqlite3-sys 0.39 declares Rust 1.88 and rusqlite 0.41 declares Rust 1.89.
Only a process that opens a database file, with its -wal, that a less trusted party could have written is exposed. A build that links a system SQLite instead of the bundled source is not affected by the copy in this crate; its exposure is that of the system library's version. The bundled-sqlcipher feature builds SQLCipher instead of SQLite; in 0.39.0 and 0.39.1 it depends on sqlcipher-src =419.0.6, which bundles SQLite 3.53.4 and is affected.
Advisory available under CC0-1.0
license.