Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sqlite-fts5-securedel — SQLite 3.53.4 – Hoch – Lokal – Absturz – FTS5 secure-delete PutVarint Footer-Überlauf | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-fts5-securedel
Statische AnalyseSpeicherforensikSchwachstellenanalyseExploitationFuzzingBinäranalysePapers & ForschungDatenbanksicherheit
GitHubabraxas/sqlite-fts5-securedel

sqlite-fts5-securedel

SQLite 3.53.4 – Hoch – Lokal – Absturz – FTS5 secure-delete PutVarint Footer-Überlauf

Repository anzeigen
11vor 5 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - sqlite-fts5-securedel

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-fts5-securedel

sqlite-fts5-securedel

Klasse: Crash Reichweite: Lokal

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) - Hwaci

fts5DoSecureDelete baut einen FTS5-Leaf-Footer mit sqlite3Fts5PutVarint nach nPg = iPgIdx neu auf. Footer-dekodierte Key-Offsets werden nicht gegen den ursprünglichen Blob begrenzt, sodass der PutVarint-Cursor über nn + FTS5_DATA_PADDING (20) hinausläuft. Typischerweise zusätzlich SQLITE_ENABLE_FTS5. Die Angriffsdatenbank verwendete bereits secure-delete.

Dies ist ein Überbleibsel des späteren Trunk Fossil 9cd4f9e920 / Git d9de6eedbe91 / branch-3.53 34171bee08 (2026-08-11, YEONBA). Dieser Check-in liegt nach diesem GA. Es ist nicht CVE-2026-11824: fts5LeafRead lehnt szLeaf<4 bei diesem Pin bereits ab.

IDnoch kein CVE
KlasseCrash (ASan WRITE der Größe 1; kein nachgewiesenes RCE)
ReichweiteLokal (eine präparierte FTS5-Datenbank öffnen, dann DELETE/flush)
CWECWE-787
CVSSHigh: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProduktSQLite (GitHub-Mirror sqlite/sqlite)
Betroffen3.53.4 SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Authkeine (nicht vertrauenswürdige Indexdatei)
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18860. ASan-Heap-Write. Keine RCE-Payload.

Was ein Angreifer tun kann

Eine präparierte FTS5-Datenbank öffnen, die bereits secure-delete verwendete, dann DELETE (oder ein beliebiger Schreibvorgang, der ein secure-delete flusht), sodass fts5DoSecureDelete Footer-Varints über Fts5Data hinaus schreibt. Crash / ASan-Heap-Write der Größe 1. Kein nachgewiesenes RCE. Nicht CVE-2026-11824.

MATCH-only ist nicht dieser Sink. Der Auslöser ist DELETE/flush. Die präparierte Datei benötigt kein deaktiviertes SQLITE_DBCONFIG_DEFENSIVE.

Wie ich es gefunden habe

Zwanzig Quellcode-Suchen in SQLite 3.53.4 nach anderen Datenbank- und HTTP-Server-Pins. CVE-2026-11822 / CVE-2026-11824 ist in diesem Tree geschlossen (fts5LeafRead szLeaf<4). YEONBAs späteres Trunk-Bound nicht. Die Datei fts5corruptB.test von 3.53.4 endet weiterhin bei Test 3.2; Trunk-Test 4.0 ist die Hexdb plus DELETE FROM t WHERE rowid = 1.

iPgIdx -= nShift;
nPg = iPgIdx;
fts5PutU16(&aPg[2], iPgIdx);

for(iIdx=0; iIdx<nIdx; /* no-op */){
  u32 iVal = 0;
  iIdx += fts5GetVarint32(&aIdx[iIdx], iVal);
  iKeyIn += iVal;
  if( iKeyIn!=iDelKeyOff ){
    int iKeyOut = (iKeyIn - (iKeyIn>iOff ? nShift : 0));
    nPg += sqlite3Fts5PutVarint(&aPg[nPg], iKeyOut - iPrevKeyOut);
    iPrevKeyOut = iKeyOut;
  }
}

ext/fts5/fts5_index.c:5514-5544. iKeyIn ist ein 32-Bit-int. Der spätere Trunk behält das ursprüngliche nPg bei, verwendet i64 iKeyIn und lehnt iKeyIn>nPg vor PutVarint ab.

Irrwege: CVE-2026-11824 für diesen Bug halten; MATCH statt DELETE; ein Live-CREATE/INSERT-Plant, der szLeaf im gültigen Bereich hielt und keinen Overflow auslöste; Winters WAL-plus-FTS5-Kette als RCE bezeichnen, ohne eine Payload zu haben.

Lab

cd lab
./run.sh

ASan-Amalgamation aus dem offiziellen sqlite-src-3530400-Zip, -DSQLITE_ENABLE_FTS5. Hexdb lab/yeonba-fts5corruptB-4.hexdb (Trunk fts5corruptB.test 4.0) ist erforderlich. Bind Loopback 127.0.0.1:18860. Compose-Projekt sqlite-fts5-securedel.

SUCCESS sqlite-fts5-securedel how=asan-heap-buffer-overflow-write-1-fts5DoSecureDelete db=yeonba-hexdb bytes=5120 SQLITE-FTS5-SECUREDEL-WITNESS

ASan-Frames: fts5PutVarint64 -> sqlite3Fts5PutVarint -> fts5DoSecureDelete / fts5FlushSecureDelete.

Der Fix

Ursprüngliches nPg beibehalten. iKeyIn auf i64 verbreitern. iKeyIn>nPg vor sqlite3Fts5PutVarint ablehnen. Das ist Fossil 9cd4f9e920 / branch-3.53 34171bee08. Diesen auf 3.53 cherry-picken.

Referenzen

  • https://sqlite.org/src Tag version-3.53.4 Git b09c88c14082339b66c7b7158d609a771e64ca69
  • ext/fts5/fts5_index.c fts5DoSecureDelete, fts5FlushSecureDelete, fts5LeafRead
  • ext/fts5/fts5_varint.c sqlite3Fts5PutVarint
  • Trunk-Fix Fossil 9cd4f9e920 / Git d9de6eedbe91 / branch-3.53 34171bee08 (2026-08-11, YEONBA)
  • CVE-2026-11824 ist der geschlossene szLeaf<4-Parent, nicht dieses Überbleibsel
Tool herunterladen