SQLite A c library that implements an embedded SQL database engine.
Don't miss out!
Thousands of developers use stack.watch to stay informed.Get an email whenever new security vulnerabilities are reported in SQLite.
SQLite EOL Dates
Ensure that you are using a supported version of SQLite. Here are some end of life, and end of support dates for SQLite.
| Release | EOL Date | Status |
|---|---|---|
| 3 | - |
Active
|
| 2 | September 18, 2004 |
EOL
SQLite 2 became EOL in 2004. |
| 1 | September 28, 2001 |
EOL
SQLite 1 became EOL in 2001. |
By the Year
In 2026 there have been 17 vulnerabilities in SQLite with an average score of 6.8 out of ten. Last year, in 2025 SQLite had 7 security vulnerabilities published. That is, 10 more vulnerabilities have already been reported in 2026 as compared to last year. Last year, the average CVE base score was greater by 1.98
| Year | Vulnerabilities | Average Score |
|---|---|---|
| 2026 | 17 | 6.82 |
| 2025 | 7 | 8.80 |
| 2024 | 1 | 4.70 |
| 2023 | 3 | 6.17 |
| 2022 | 5 | 7.28 |
| 2021 | 2 | 0.00 |
| 2020 | 12 | 6.00 |
| 2019 | 18 | 7.40 |
| 2018 | 2 | 7.50 |
It may take a day or so for new SQLite vulnerabilities to show up in the stats or in the list of recent security vulnerabilities. Additionally vulnerabilities may be tagged under a different product or component name.
Recent SQLite Security Vulnerabilities
SQLite 3.41 UAF in shared cache lock in btree module
CVE-2026-51290
- July 30, 2026
SQLite 3.41 UAF in jsonCacheInsert (JSON Cache)
CVE-2026-51291
- July 30, 2026
SQLite 3.41 use-after-free via jsonBlobAppendNode() after sqlite3DbFree()
CVE-2026-51293
- July 30, 2026
SQLite 3.41 use-after-free in jsonArrayLengthFunc
CVE-2026-51294
- July 30, 2026
SQLite 3.41 Use-After-Free via jsonExtractFunc
CVE-2026-51295
- July 30, 2026
SQLite 3.41 UAF in ORDER BY parsing routine
CVE-2026-51304
- July 27, 2026
SQLite 3.41 UAF in ExprList Delete during SQL Parsing
CVE-2026-51303
- July 27, 2026
SQLite 3.41 Use-After-Free in expression eval can lead to DoS
CVE-2026-51302
- July 27, 2026
SQLite 3.41: UAF in ExprDelete Remote Crash & Info Leak
CVE-2026-51300
- July 27, 2026
SQLite 3.41 UAF in JsonParse Extraction Function
CVE-2026-51298
- July 27, 2026
SQLite 3.41 UAF in JSON parsing
CVE-2026-51297
- July 27, 2026
SQLite 3.41 JSON UAF: jsonRemoveFunc freed pointer may crash
CVE-2026-51296
- July 27, 2026
SQLite Session Extension NULL Deref CVE-2026-50812 <3.53.1
CVE-2026-50812
5.5 - Medium
- July 08, 2026
A NULL pointer dereference in the SQLite Session Extension in SQLite 3.53.1 and SQLite trunk builds before check-in e807d4e3798efd53 allows an attacker who can supply a malformed changeset blob to cause a denial of service. The issue occurs when sqlite3changeset_apply_v3() applies a corrupt changeset and reaches sqlite3_value_type() with a NULL sqlite3_value pointer.
NULL Pointer Dereference
SQLite Session Ext Path Assigner Leak Sensitive Data
CVE-2026-50813
5.5 - Medium
- July 08, 2026
An issue in SQLite before Fossil check-in 869a51ae84df allows a local attacker to obtain sensitive information via the Session Extension changeset concat/changegroup merge path
Buffer Over-read
SQLite FTS5 Heap Buffer Overflow (pre-3.53.2) Crash/Code Exec
CVE-2026-11824
7.8 - High
- June 09, 2026
SQLite before 3.53.2 contains a heap-based buffer overflow vulnerability in the FTS5 full-text search extension that allows attackers to cause a crash or execute arbitrary code by supplying a crafted database with malicious continuation page metadata specifying a szLeaf value smaller than 4. Attackers can trigger an integer underflow in fts5ChunkIterate() causing an inflated remaining byte count during FTS5 MATCH query processing, leading to a heap buffer overflow of attacker-controlled data in applications compiled with SQLITE_ENABLE_FTS5.
Heap-based Buffer Overflow
SQLite FTS5 OOB Read & Heap BOF in Pre-3.53.2 via Malformed Page
CVE-2026-11822
7.8 - High
- June 09, 2026
SQLite before 3.53.2 contains memory corruption vulnerabilities in the FTS5 full-text search extension that allow attackers to cause process crashes, memory exhaustion, or arbitrary code execution by supplying a crafted database with malformed FTS5 page data. Attackers can trigger an out-of-bounds read in fts5LeafSeek() via an attacker-controlled loop bound and a heap buffer overflow write in fts5ChunkIterate() through a crafted continuation page causing an integer underflow, exploitable when an FTS5 MATCH query is executed against the malicious database.
Heap-based Buffer Overflow
SQLite zipfileInflate Info Disclosure <3.51.1
CVE-2025-70873
7.5 - High
- March 12, 2026
An information disclosure issue in the zipfileInflate function in the zipfile extension in SQLite v3.51.1 and earlier allows attackers to obtain heap memory via supplying a crafted ZIP file.
Heap Inspection
SQLite3 3.50.0 Integer Overflow DoS via setupLookaside
CVE-2025-52099
- October 24, 2025
SQLite FTS5 Integer Overflow Enables Out-of-Bounds Write
CVE-2025-7709
- September 08, 2025
An integer overflow exists in the FTS5 https://sqlite.org/fts5.html extension. It occurs when the size of an array of tombstone pointers is calculated and truncated into a 32-bit integer. A pointer to partially controlled data can then be written out of bounds.
Integer Overflow or Wraparound
SQLite 3.39.2-3.41.1 Order By ExprList Integer Overflow
CVE-2025-7458
9.1 - Critical
- July 29, 2025
An integer overflow in the sqlite3KeyInfoFromExprList function in SQLite versions 3.39.2 through 3.41.1 allows an attacker with the ability to execute arbitrary SQL statements to cause a denial of service or disclose sensitive information from process memory via a crafted SELECT statement with a large number of expressions in the ORDER BY clause.
SQLite Memory Corrupt: Aggregates > Columns Before 3.50.2
CVE-2025-6965
- July 15, 2025
There exists a vulnerability in SQLite versions before 3.50.2 where the number of aggregate terms could exceed the number of columns available. This could lead to a memory corruption issue. We recommend upgrading to version 3.50.2 or above.
Numeric Truncation Error
SQLite concat_ws() Integer Overflow Heap Buffer Overflow (CVE-2025-3277)
CVE-2025-3277
9.8 - Critical
- April 14, 2025
An integer overflow can be triggered in SQLites `concat_ws()` function. The resulting, truncated integer is then used to allocate a buffer. When SQLite then writes the resulting string to the buffer, it uses the original, untruncated size and thus a wild Heap Buffer overflow of size ~4GB can be triggered. This can result in arbitrary code execution.
Integer Overflow or Wraparound
SQLite 3.49.0/3.49.1 DoS via sqlite3_db_config arg
CVE-2025-29088
- April 10, 2025
In SQLite 3.49.0 before 3.49.1, certain argument values to sqlite3_db_config (in the C-language API) can cause a denial of service (application crash). An sz*nBig multiplication is not cast to a 64-bit integer, and consequently some memory allocations may be incorrect.
SQLite 3.44.0-3.49.0: concat_ws() Integer Overflow (before 3.49.1)
CVE-2025-29087
7.5 - High
- April 07, 2025
In SQLite 3.44.0 through 3.49.0 before 3.49.1, the concat_ws() SQL function can cause memory to be written beyond the end of a malloc-allocated buffer. If the separator argument is attacker-controlled and has a large string (e.g., 2MB or more), an integer overflow occurs in calculating the size of the result buffer, and thus malloc may not allocate enough memory.
Integer Overflow or Wraparound
SQLite UAF in jsonParseAddNodeArray() Leads to Local DOS via Malicious Input
CVE-2024-0232
4.7 - 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
SQLite 3.43.0 heap-based overflow in sessionReadRecord (critical)
CVE-2023-7104
5.5 - Medium
- 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.
Heap-based Buffer Overflow
SQLite 3.35.4 DoS via appendvfs.c Remote Exploit
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 Buffer Overflow (3.27.1) Allows Local DoS via Crafted Script
CVE-2020-24736
5.5 - Medium
- April 11, 2023
Buffer Overflow vulnerability found in SQLite3 v.3.27.1 and before allows a local attacker to cause a denial of service via a crafted script.
Classic Buffer Overflow
SQLite<3.40.0 azProhibitedFunctions bypass via --safe allows WRITEFILE UDF
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.
SQLite 3.31.1 NPE in INTERSEC Query Processing
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
SQLite 3.31.1 OOB via ALTER TABLE on View Nested FROM CVE-2020-35527
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.123.39.x (3.39.2): Array-Bounds Overflow via large C API strings
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.
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
- 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
- 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
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
- 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.
SQLite through 3.31.1
CVE-2020-11655
- 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.
In SQLite 3.31.1, isAuxiliaryVtabOperator
CVE-2020-9327
- 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.
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
- 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
- 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
- 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.
SQLite 3.30.1 mishandles certain parser-tree rewriting, related to expr.c, vdbeaux.c, and window.c
CVE-2019-19924
- 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.
flattenSubquery in select.c in SQLite 3.30.1 mishandles certain uses of SELECT DISTINCT involving a LEFT JOIN in
CVE-2019-19923
- 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).