new file mode 100644
@@ -0,0 +1,52 @@
+From e92efe57e1f9cc51f7d819bb7fb05bff182b708b Mon Sep 17 00:00:00 2001
+From: dan <Dan Kennedy>
+Date: Thu, 24 Sep 2026 20:14:31 +0000
+Subject: [PATCH] Avoid a use-after-free problem in rtree triggered by an
+ attacker manipulating the shadow table schema to ensure
+ sqlite3_last_insert_rowid() returns 0 after certain INSERTs. Problem reported
+ by Claude and Ada Logics.
+
+FossilOrigin-Name: 6a9e1415659f9e75940b3c3a6f6e123f61c5e9e2a7a612693ee395d7b7567bef
+
+CVE: CVE-2026-119378
+Upstream-Status: Backport [https://github.com/sqlite/sqlite/commit/d21bd37c7cfc1b85b17a6703555f0926b6236e04]
+
+Backport Changes:
+- Applied the ext/rtree/rtree.c fix to sqlite3.c because the recipe
+ source uses the amalgamated SQLite layout.
+- Omitted ext/rtree/rtreeI.test because the extracted source does not
+ include the upstream test tree.
+- Omitted manifest and manifest.uuid because they are Fossil
+ repository metadata and are not needed for this source patch.
+
+Signed-off-by: Arpit Patel <arpitpa@cisco.com>
+---
+ sqlite3.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sqlite3.c b/sqlite3.c
+index cbad7b2ae5..45ade42b16 100644
+--- a/sqlite3.c
++++ b/sqlite3.c
+@@ -216677,7 +216677,17 @@ static int nodeWrite(Rtree *pRtree, RtreeNode *pNode){
+ sqlite3_bind_null(p, 2);
+ if( pNode->iNode==0 && rc==SQLITE_OK ){
+ pNode->iNode = sqlite3_last_insert_rowid(pRtree->db);
+- nodeHashInsert(pRtree, pNode);
++ if( pNode->iNode==0 ){
++ /* If the SQL statement has succeeded but sqlite3_last_insert_rowid()
++ ** returns 0, then the shadow table schema has been corrupted somehow
++ ** (e.g. the %_node table has been replaced by a WITHOUT ROWID table).
++ ** It would be dangerous to continue in this case as the hash table
++ ** implementation assumes iNode==0 means that the node is not part
++ ** of the hash table. */
++ rc = SQLITE_CORRUPT_VTAB;
++ }else{
++ nodeHashInsert(pRtree, pNode);
++ }
+ }
+ }
+ return rc;
+--
+2.35.6
+
@@ -18,4 +18,5 @@ SRC_URI += "\
file://CVE-2026-119375.patch \
file://CVE-2026-119379.patch \
file://CVE-2026-119372.patch \
+ file://CVE-2026-119378.patch \
"
This patch applies the upstream fix [1], which prevents a use-after-free in R-Tree when a manipulated shadow-table schema causes sqlite3_last_insert_rowid() to return 0. The GitHub mirror commit [1] corresponds to the SQLite Fossil check-in shown in [2]. [1] https://github.com/sqlite/sqlite/commit/d21bd37c7cfc1b85b17a6703555f0926b6236e04 [2] https://sqlite.org/src/info/6a9e1415659f9e75 Reference: https://nvd.nist.gov/vuln/detail/CVE-2026-119378 Signed-off-by: Arpit Patel <arpitpa@cisco.com> --- .../sqlite/sqlite3/CVE-2026-119378.patch | 52 +++++++++++++++++++ meta/recipes-support/sqlite/sqlite3_3.51.3.bb | 1 + 2 files changed, 53 insertions(+) create mode 100644 meta/recipes-support/sqlite/sqlite3/CVE-2026-119378.patch