new file mode 100644
@@ -0,0 +1,56 @@
+From 52acd34ba6d51393d9f714b3e0c5ae7d805ddeae Mon Sep 17 00:00:00 2001
+From: dan <Dan Kennedy>
+Date: Mon, 17 Aug 2026 13:55:38 +0000
+Subject: [PATCH] Avoid a problem causing a use-after-free in the fts3
+ snippet() function. Report [bugs:/info/2026-08-17T09:18:24Z |
+ 2026-08-17T09:18:24Z].
+
+FossilOrigin-Name: e4635c41536a0b3620780c3f1c872de33121370bafb608fce9fe7e3113e2ae01
+
+CVE: CVE-2026-119372
+Upstream-Status: Backport [https://github.com/sqlite/sqlite/commit/a87bd2471a9c0606e78d3c3678bcd9cecaa0e731]
+
+Backport Changes:
+- Applied the ext/fts3/fts3_snippet.c fix to sqlite3.c because the
+ recipe source uses the amalgamated SQLite layout.
+- Omitted test/fts3snippet2.test because the extracted source does not
+ include the upstream Tcl 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 | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/sqlite3.c b/sqlite3.c
+index 83a018d3fc..cbad7b2ae5 100644
+--- a/sqlite3.c
++++ b/sqlite3.c
+@@ -208133,6 +208133,7 @@ static int fts3BestSnippet(
+ sqlite3_int64 nByte; /* Number of bytes of space to allocate */
+ int iBestScore = -1; /* Best snippet score found so far */
+ int i; /* Loop counter */
++ Fts3Expr *pExpr = pCsr->pExpr;
+
+ memset(&sIter, 0, sizeof(sIter));
+
+@@ -208161,9 +208162,12 @@ static int fts3BestSnippet(
+ sIter.nSnippet = nSnippet;
+ sIter.nPhrase = nList;
+ sIter.iCurrent = -1;
+- rc = sqlite3Fts3ExprIterate(
+- pCsr->pExpr, fts3SnippetFindPositions, (void*)&sIter
+- );
++ rc = sqlite3Fts3ExprIterate(pExpr, fts3SnippetFindPositions, (void*)&sIter);
++ if( rc==SQLITE_OK ){
++ /* Iterate through the expression twice, in case pointers garnered during
++ ** the first iteration are invalidated by a call to fts5EvalRestart(). */
++ rc = sqlite3Fts3ExprIterate(pExpr, fts3SnippetFindPositions, (void*)&sIter);
++ }
+ if( rc==SQLITE_OK ){
+
+ /* Set the *pmSeen output variable. */
+--
+2.35.6
+
@@ -17,4 +17,5 @@ SRC_URI += "\
file://CVE-2026-119374.patch \
file://CVE-2026-119375.patch \
file://CVE-2026-119379.patch \
+ file://CVE-2026-119372.patch \
"
This patch applies the upstream fix [1], which prevents a use-after-free in FTS3 snippet() processing. The GitHub mirror commit [1] corresponds to the SQLite Fossil check-in shown in [2]. [1] https://github.com/sqlite/sqlite/commit/a87bd2471a9c0606e78d3c3678bcd9cecaa0e731 [2] https://sqlite.org/src/info/e4635c41536a Reference: https://nvd.nist.gov/vuln/detail/CVE-2026-119372 Signed-off-by: Arpit Patel <arpitpa@cisco.com> --- .../sqlite/sqlite3/CVE-2026-119372.patch | 56 +++++++++++++++++++ meta/recipes-support/sqlite/sqlite3_3.51.3.bb | 1 + 2 files changed, 57 insertions(+) create mode 100644 meta/recipes-support/sqlite/sqlite3/CVE-2026-119372.patch