CVE-2026-51936: SQL Injection
Zetetic SQLCipher before 4.15.0 allows SQL injection. The sqlcipherexport convenience function can be used to copy the contents of one attached database into another. It is most often used to convert between plaintext and encrypted databases. It needs to do dynamic schema manipulation, and thus the function temporarily clears defensive restrictions during operation. A vulnerability in the handling of the source database name parameter made it possible for a caller to supply a crafted source name, which could execute statements that defensive mode would otherwise block. This could allow direct modifications to the sqliteschema table and database corruption. SQLCipher 4.15.0 now strictly validates the source database name and prevents the bypass.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
SQLCipherto a version that resolves this vulnerability.Fixed in 4.15.0
Event History
Frequently Asked Questions
What attacker access is required to exploit this issue?
An attacker must be able to invoke sqlcipher_export and control its source database name parameter. The issue is in crafted input to that parameter during the function's dynamic schema operations.
What is the potential impact of successful exploitation?
A crafted source database name can execute statements that defensive mode would normally block. This can permit direct modification of the sqlite_schema table and may corrupt the database.
Which versions are affected and what fixes the issue?
SQLCipher versions before 4.15.0 are affected. SQLCipher 4.15.0 strictly validates the source database name and prevents the defensive-mode bypass.