SQLite A c library that implements an embedded SQL database engine.
By the Year
In 2024 there have been 1 vulnerability in SQLite with an average score of 5.5 out of ten. Last year SQLite had 2 security vulnerabilities published. Right now, SQLite is on track to have less security vulnerabilities in 2024 than it did last year. Last year, the average CVE base score was greater by 1.90
Year | Vulnerabilities | Average Score |
---|---|---|
2024 | 1 | 5.50 |
2023 | 2 | 7.40 |
2022 | 5 | 7.28 |
2021 | 2 | 6.50 |
2020 | 12 | 6.82 |
2019 | 18 | 7.57 |
2018 | 2 | 7.80 |
It may take a day or so for new SQLite vulnerabilities to show up in the stats or in the list of recent security vulnerabilties. Additionally vulnerabilities may be tagged under a different product or component name.
Recent SQLite Security Vulnerabilities
A heap use-after-free issue has been identified in SQLite in the jsonParseAddNodeArray() function in sqlite3.c
CVE-2024-0232
5.5 - Medium
- January 16, 2024
A heap use-after-free issue has been identified in SQLite in the jsonParseAddNodeArray() function in sqlite3.c. This flaw allows a local attacker to leverage a victim to pass specially crafted malicious input to the application, potentially causing a crash and leading to a denial of service.
Dangling pointer
A vulnerability was found in SQLite SQLite3 up to 3.43.0 and classified as critical
CVE-2023-7104
7.3 - High
- December 29, 2023
A vulnerability was found in SQLite SQLite3 up to 3.43.0 and classified as critical. This issue affects the function sessionReadRecord of the file ext/session/sqlite3session.c of the component make alltest Handler. The manipulation leads to heap-based buffer overflow. It is recommended to apply a patch to fix this issue. The associated identifier of this vulnerability is VDB-248999.
Buffer Overflow
An issue found in SQLite SQLite3 v.3.35.4
CVE-2021-31239
7.5 - High
- May 09, 2023
An issue found in SQLite SQLite3 v.3.35.4 that allows a remote attacker to cause a denial of service via the appendvfs.c function.
Out-of-bounds Read
SQLite through 3.40.0, when relying on --safe for execution of an untrusted CLI script, does not properly implement the azProhibitedFunctions protection mechanism, and instead
CVE-2022-46908
7.3 - High
- December 12, 2022
SQLite through 3.40.0, when relying on --safe for execution of an untrusted CLI script, does not properly implement the azProhibitedFunctions protection mechanism, and instead allows UDF functions such as WRITEFILE.
In SQlite 3.31.1
CVE-2020-35525
7.5 - High
- September 01, 2022
In SQlite 3.31.1, a potential null pointer derreference was found in the INTERSEC query processing.
NULL Pointer Dereference
In SQLite 3.31.1, there is an out of bounds access problem through ALTER TABLE for views
CVE-2020-35527
9.8 - Critical
- September 01, 2022
In SQLite 3.31.1, there is an out of bounds access problem through ALTER TABLE for views that have a nested FROM clause.
Buffer Overflow
SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes
CVE-2022-35737
7.5 - High
- August 03, 2022
SQLite 1.0.12 through 3.39.x before 3.39.2 sometimes allows an array-bounds overflow if billions of bytes are used in a string argument to a C API.
out-of-bounds array index
A Memory Leak vulnerability exists in SQLite Project SQLite3 3.35.1 and 3.37.0 via maliciously crafted SQL Queries (made via editing the Database File), it is possible to query a record, and leak subsequent bytes of memory
CVE-2021-45346
4.3 - Medium
- February 14, 2022
A Memory Leak vulnerability exists in SQLite Project SQLite3 3.35.1 and 3.37.0 via maliciously crafted SQL Queries (made via editing the Database File), it is possible to query a record, and leak subsequent bytes of memory that extend beyond the record, which could let a malicious user obtain sensitive information. NOTE: The developer disputes this as a vulnerability stating that If you give SQLite a corrupted database file and submit a query against the database, it might read parts of the database that you did not intend or expect.
Memory Leak
A segmentation fault can occur in the sqlite3.exe command-line component of SQLite 3.36.0
CVE-2021-36690
7.5 - High
- August 24, 2021
A segmentation fault can occur in the sqlite3.exe command-line component of SQLite 3.36.0 via the idxGetTableInfo function when there is a crafted SQL query. NOTE: the vendor disputes the relevance of this report because a sqlite3.exe user already has full privileges (e.g., is intentionally allowed to execute commands). This report does NOT imply any problem in the SQLite library.
A flaw was found in SQLite's SELECT query functionality (src/select.c)
CVE-2021-20227
5.5 - Medium
- March 23, 2021
A flaw was found in SQLite's SELECT query functionality (src/select.c). This flaw allows an attacker who is capable of running SQL queries locally on the SQLite database to cause a denial of service or possible code execution by triggering a use-after-free. The highest threat from this vulnerability is to system availability.
Dangling pointer
In SQLite before 3.32.3, select.c mishandles query-flattener optimization, leading to a multiSelectOrderBy heap overflow
CVE-2020-15358
5.5 - Medium
- June 27, 2020
In SQLite before 3.32.3, select.c mishandles query-flattener optimization, leading to a multiSelectOrderBy heap overflow because of misuse of transitive properties for constant propagation.
Memory Corruption
SQLite 3.32.2 has a use-after-free in resetAccumulator in select.c
CVE-2020-13871
7.5 - High
- June 06, 2020
SQLite 3.32.2 has a use-after-free in resetAccumulator in select.c because the parse tree rewrite for window functions is too late.
Dangling pointer
ext/fts3/fts3_snippet.c in SQLite before 3.32.0 has a NULL pointer dereference
CVE-2020-13632
5.5 - Medium
- May 27, 2020
ext/fts3/fts3_snippet.c in SQLite before 3.32.0 has a NULL pointer dereference via a crafted matchinfo() query.
NULL Pointer Dereference
SQLite before 3.32.0
CVE-2020-13631
5.5 - Medium
- May 27, 2020
SQLite before 3.32.0 allows a virtual table to be renamed to the name of one of its shadow tables, related to alter.c and build.c.
ext/fts3/fts3.c in SQLite before 3.32.0 has a use-after-free in fts3EvalNextRow
CVE-2020-13630
7 - High
- May 27, 2020
ext/fts3/fts3.c in SQLite before 3.32.0 has a use-after-free in fts3EvalNextRow, related to the snippet feature.
Dangling pointer
SQLite through 3.32.0 has a segmentation fault in sqlite3ExprCodeTarget in expr.c.
CVE-2020-13435
5.5 - Medium
- May 24, 2020
SQLite through 3.32.0 has a segmentation fault in sqlite3ExprCodeTarget in expr.c.
NULL Pointer Dereference
SQLite through 3.32.0 has an integer overflow in sqlite3_str_vappendf in printf.c.
CVE-2020-13434
5.5 - Medium
- May 24, 2020
SQLite through 3.32.0 has an integer overflow in sqlite3_str_vappendf in printf.c.
Integer Overflow or Wraparound
SQLite through 3.31.1
CVE-2020-11655
7.5 - High
- April 09, 2020
SQLite through 3.31.1 allows attackers to cause a denial of service (segmentation fault) via a malformed window-function query because the AggInfo object's initialization is mishandled.
Improper Initialization
In SQLite through 3.31.1, the ALTER TABLE implementation has a use-after-free, as demonstrated by an ORDER BY clause
CVE-2020-11656
9.8 - Critical
- April 09, 2020
In SQLite through 3.31.1, the ALTER TABLE implementation has a use-after-free, as demonstrated by an ORDER BY clause that belongs to a compound SELECT statement.
Dangling pointer
In SQLite 3.31.1, isAuxiliaryVtabOperator
CVE-2020-9327
7.5 - High
- February 21, 2020
In SQLite 3.31.1, isAuxiliaryVtabOperator allows attackers to trigger a NULL pointer dereference and segmentation fault because of generated column optimizations.
NULL Pointer Dereference
ext/misc/zipfile.c in SQLite 3.30.1 mishandles certain uses of INSERT INTO in situations involving embedded '\0' characters in filenames, leading to a memory-management error
CVE-2019-19959
7.5 - High
- January 03, 2020
ext/misc/zipfile.c in SQLite 3.30.1 mishandles certain uses of INSERT INTO in situations involving embedded '\0' characters in filenames, leading to a memory-management error that can be detected by (for example) valgrind.
selectExpander in select.c in SQLite 3.30.1 proceeds with WITH stack unwinding even after a parsing error.
CVE-2019-20218
7.5 - High
- January 02, 2020
selectExpander in select.c in SQLite 3.30.1 proceeds with WITH stack unwinding even after a parsing error.
zipfileUpdate in ext/misc/zipfile.c in SQLite 3.30.1 mishandles a NULL pathname during an update of a ZIP archive.
CVE-2019-19925
7.5 - High
- December 24, 2019
zipfileUpdate in ext/misc/zipfile.c in SQLite 3.30.1 mishandles a NULL pathname during an update of a ZIP archive.
Unrestricted File Upload
SQLite 3.30.1 mishandles certain parser-tree rewriting, related to expr.c, vdbeaux.c, and window.c
CVE-2019-19924
5.3 - Medium
- December 24, 2019
SQLite 3.30.1 mishandles certain parser-tree rewriting, related to expr.c, vdbeaux.c, and window.c. This is caused by incorrect sqlite3WindowRewrite() error handling.
Improper Handling of Exceptional Conditions
flattenSubquery in select.c in SQLite 3.30.1 mishandles certain uses of SELECT DISTINCT involving a LEFT JOIN in
CVE-2019-19923
7.5 - High
- December 24, 2019
flattenSubquery in select.c in SQLite 3.30.1 mishandles certain uses of SELECT DISTINCT involving a LEFT JOIN in which the right-hand side is a view. This can cause a NULL pointer dereference (or incorrect results).
NULL Pointer Dereference
multiSelect in select.c in SQLite 3.30.1 mishandles certain errors during parsing, as demonstrated by errors
CVE-2019-19926
7.5 - High
- December 23, 2019
multiSelect in select.c in SQLite 3.30.1 mishandles certain errors during parsing, as demonstrated by errors from sqlite3WindowRewrite() calls. NOTE: this vulnerability exists because of an incomplete fix for CVE-2019-19880.
NULL Pointer Dereference
exprListAppendList in window.c in SQLite 3.30.1
CVE-2019-19880
7.5 - High
- December 18, 2019
exprListAppendList in window.c in SQLite 3.30.1 allows attackers to trigger an invalid pointer dereference because constant integer values in ORDER BY clauses of window definitions are mishandled.
NULL Pointer Dereference
pragma.c in SQLite through 3.30.1 mishandles NOT NULL in an integrity_check PRAGMA command in certain cases of generated columns.
CVE-2019-19646
9.8 - Critical
- December 09, 2019
pragma.c in SQLite through 3.30.1 mishandles NOT NULL in an integrity_check PRAGMA command in certain cases of generated columns.
Improper Check for Unusual or Exceptional Conditions
SQLite 3.30.1 mishandles certain SELECT statements with a nonexistent VIEW
CVE-2019-19603
7.5 - High
- December 09, 2019
SQLite 3.30.1 mishandles certain SELECT statements with a nonexistent VIEW, leading to an application crash.
alter.c in SQLite through 3.30.1
CVE-2019-19645
5.5 - Medium
- December 09, 2019
alter.c in SQLite through 3.30.1 allows attackers to trigger infinite recursion via certain types of self-referential views in conjunction with ALTER TABLE statements.
Stack Exhaustion
lookupName in resolve.c in SQLite 3.30.1 omits bits from the colUsed bitmask in the case of a generated column, which
CVE-2019-19317
9.8 - Critical
- December 05, 2019
lookupName in resolve.c in SQLite 3.30.1 omits bits from the colUsed bitmask in the case of a generated column, which allows attackers to cause a denial of service or possibly have unspecified other impact.
Incorrect Conversion between Numeric Types
SQLite 3.30.1 mishandles pExpr->y.pTab
CVE-2019-19242
5.9 - Medium
- November 27, 2019
SQLite 3.30.1 mishandles pExpr->y.pTab, as demonstrated by the TK_COLUMN case in sqlite3ExprCodeTarget in expr.c.
NULL Pointer Dereference
sqlite3Select in select.c in SQLite 3.30.1
CVE-2019-19244
7.5 - High
- November 25, 2019
sqlite3Select in select.c in SQLite 3.30.1 allows a crash if a sub-select uses both DISTINCT and window functions, and also has certain ORDER BY usage.
In SQLite through 3.29.0, whereLoopAddBtreeIndex in sqlite3.c can crash a browser or other application
CVE-2019-16168
6.5 - Medium
- September 09, 2019
In SQLite through 3.29.0, whereLoopAddBtreeIndex in sqlite3.c can crash a browser or other application because of missing validation of a sqlite_stat1 sz field, aka a "severe division by zero in the query planner."
Divide By Zero
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.
CVE-2019-8457
9.8 - Critical
- May 30, 2019
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.
Out-of-bounds Read
An exploitable use after free vulnerability exists in the window function functionality of Sqlite3 3.26.0
CVE-2019-5018
8.1 - High
- May 10, 2019
An exploitable use after free vulnerability exists in the window function functionality of Sqlite3 3.26.0. A specially crafted SQL command can cause a use after free vulnerability, potentially resulting in remote code execution. An attacker can send a malicious SQL command to trigger this vulnerability.
Dangling pointer
SQLite before 3.25.3, when the FTS3 extension is enabled, encounters an integer overflow (and resultant buffer overflow) for FTS3 queries in a "merge" operation
CVE-2018-20506
8.1 - High
- April 03, 2019
SQLite before 3.25.3, when the FTS3 extension is enabled, encounters an integer overflow (and resultant buffer overflow) for FTS3 queries in a "merge" operation that occurs after crafted changes to FTS3 shadow tables, allowing remote attackers to execute arbitrary code by leveraging the ability to run arbitrary SQL statements (such as in certain WebSQL use cases). This is a different vulnerability than CVE-2018-20346.
Integer Overflow or Wraparound
SQLite 3.25.2, when queries are run on a table with a malformed PRIMARY KEY
CVE-2018-20505
7.5 - High
- April 03, 2019
SQLite 3.25.2, when queries are run on a table with a malformed PRIMARY KEY, allows remote attackers to cause a denial of service (application crash) by leveraging the ability to run arbitrary SQL statements (such as in certain WebSQL use cases).
SQL Injection
In SQLite 3.27.2
CVE-2019-9937
7.5 - High
- March 22, 2019
In SQLite 3.27.2, interleaving reads and writes in a single transaction with an fts5 virtual table will lead to a NULL Pointer Dereference in fts5ChunkIterate in sqlite3.c. This is related to ext/fts5/fts5_hash.c and ext/fts5/fts5_index.c.
NULL Pointer Dereference
In SQLite 3.27.2, running fts5 prefix queries inside a transaction could trigger a heap-based buffer over-read in fts5HashEntrySort in sqlite3.c
CVE-2019-9936
7.5 - High
- March 22, 2019
In SQLite 3.27.2, running fts5 prefix queries inside a transaction could trigger a heap-based buffer over-read in fts5HashEntrySort in sqlite3.c, which may lead to an information leak. This is related to ext/fts5/fts5_hash.c.
Out-of-bounds Read
SQLite before 3.25.3, when the FTS3 extension is enabled, encounters an integer overflow (and resultant buffer overflow) for FTS3 queries
CVE-2018-20346
8.1 - High
- December 21, 2018
SQLite before 3.25.3, when the FTS3 extension is enabled, encounters an integer overflow (and resultant buffer overflow) for FTS3 queries that occur after crafted changes to FTS3 shadow tables, allowing remote attackers to execute arbitrary code by leveraging the ability to run arbitrary SQL statements (such as in certain WebSQL use cases), aka Magellan.
Integer Overflow or Wraparound
In SQLite through 3.22.0
CVE-2018-8740
7.5 - High
- March 17, 2018
In SQLite through 3.22.0, databases whose schema is corrupted using a CREATE TABLE AS statement could cause a NULL pointer dereference, related to build.c and prepare.c.
NULL Pointer Dereference
os_unix.c in SQLite before 3.13.0 improperly implements the temporary directory search algorithm, which might
CVE-2016-6153
5.9 - Medium
- September 26, 2016
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.
Improper Input Validation
The sqlite3VXPrintf function in printf.c in SQLite before 3.8.9 does not properly handle precision and width values during floating-point conversions, which
CVE-2015-3416
- April 24, 2015
The sqlite3VXPrintf function in printf.c in SQLite before 3.8.9 does not properly handle precision and width values during floating-point conversions, which allows context-dependent attackers to cause a denial of service (integer overflow and stack-based buffer overflow) or possibly have unspecified other impact via large integers in a crafted printf function call in a SELECT statement.
Integer Overflow or Wraparound
The sqlite3VdbeExec function in vdbe.c in SQLite before 3.8.9 does not properly implement comparison operators, which
CVE-2015-3415
- April 24, 2015
The sqlite3VdbeExec function in vdbe.c in SQLite before 3.8.9 does not properly implement comparison operators, which allows context-dependent attackers to cause a denial of service (invalid free operation) or possibly have unspecified other impact via a crafted CHECK clause, as demonstrated by CHECK(0&O>O) in a CREATE TABLE statement.
Improper Resource Shutdown or Release
SQLite before 3.8.9 does not properly implement the dequoting of collation-sequence names, which
CVE-2015-3414
- April 24, 2015
SQLite before 3.8.9 does not properly implement the dequoting of collation-sequence names, which allows context-dependent attackers to cause a denial of service (uninitialized memory access and application crash) or possibly have unspecified other impact via a crafted COLLATE clause, as demonstrated by COLLATE"""""""" at the end of a SELECT statement.
Use of Uninitialized Resource