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-session-ncol — SQLite 3.53.4 – Hoch – Lokal – Heap-OOB-Schreibzugriff – Session-Changeset mit gleichnamigem nCol-Wachstum | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-session-ncol
SpeicherforensikSchwachstellenanalyseExploitationFuzzingBinäranalysePapers & ForschungDatenbanksicherheit
GitHubabraxas/sqlite-session-ncol

sqlite-session-ncol

SQLite 3.53.4 – Hoch – Lokal – Heap-OOB-Schreibzugriff – Session-Changeset mit gleichnamigem nCol-Wachstum

Repository anzeigen
7vor 6 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-session-ncol

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

sqlite-session-ncol

Klasse: Heap-OOB-Write Reichweite: Lokal

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) mit -DSQLITE_ENABLE_SESSION. Ein Changeset aus zwei Blöcken, das den Tabellennamen t mit nCol=2 und dann nCol=64 wiederverwendet, überspringt das Zurücksetzen von sessionTableInfo (sqlite3session.c:5619) und führt ein memset über den aUpdateMask des ersten Blocks hinaus aus. ASan WRITE der Größe 12 in sessionUpdateFind. Kontrolle: einzelnes 2-Spalten-UPDATE apply-rc=0.

Keine Standard-Amalgamation, es sei denn SESSION ist aktiviert. CVE-2026-50812 NPD ist ab 3.53.2+ geschlossen. Keine weaponisierte RCE-Payload. Das Orakel ist der ASan WRITE.

IDnoch keine CVE
KlasseHeap-OOB-Write (ASan WRITE der Größe 12; keine nachgewiesene RCE)
ReichweiteLokal (nicht vertrauenswürdiges Changeset via sqlite3changeset_apply*)
CWECWE-787
CVSSHoch: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProduktSQLite Session-Extra (Hwaci)
Betroffen3.53.4 (b09c88c) kompiliert mit -DSQLITE_ENABLE_SESSION
AuthHost wendet ein nicht vertrauenswürdiges Changeset an
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18900. ASan-WRITE-der-Größe-12-Nachweis.

Was ein Angreifer tun kann

Ein nicht vertrauenswürdiges Changeset anwenden, dessen zweiter Tabellenblock einen Tabellennamen mit größerem nCol wiederverwendet. Heap-OOB-Write. Extra-Kompilierung. Keine Standard-Amalgamation, es sei denn SESSION ist aktiviert.

Der erste Block allokiert aUpdateMask aus pIter->nCol. Der spätere gleichnamige Block überspringt das Zurücksetzen von sessionTableInfo und führt ein memset einer größeren Maske über die alte Allokation aus. Lab: nCol=2, dann nCol=64 UPDATE. ASan WRITE der Größe 12 in sessionUpdateFind. Kontrolle: einzelnes 2-Spalten-UPDATE apply-rc=0.

Dieses Paket nicht als Write-what-where-Gadget behandeln. Der ASan WRITE der Größe 12 ist das Orakel.

Wie ich es gefunden habe

Zwanzig Quellcode-Suchen in SQLite 3.53.4 nach der FTS5-/Session-NPD-Welle von 3.53.2. CVE-2026-50812 ist geschlossen (sessionBindRow behandelt einen fehlenden Wert als SQLITE_CORRUPT). Session schlüsselt SessionApplyCtx weiterhin nur nach Tabellenname. Ein zweiter Block mit demselben Namen und einer größeren deklarierten Spaltenanzahl verwendet aUpdateMask wieder.

Bereits dokumentierte Irrwege: die Standard-Amalgamation als im Geltungsbereich betrachten (SESSION ist aus); CVE-2026-50812 erneut einreichen; einen Tabellenblock mit nCol=64 gegen ein 2-Spalten-Schema senden (schemaMismatch, kein Write); RCE aus einem 12-Byte-memset behaupten.

Lab

cd lab
./run.sh

ASan-Amalgamation aus dem offiziellen sqlite-src-3530400-Zip. Extra-Kompilierung -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK. Health auf 127.0.0.1:18900. An Loopback binden.

SUCCESS sqlite-session-ncol how=asan-heap-write-sessionUpdateFind write-size=12 control-apply-rc=0 SQLITE-SESSION-NCOL-WITNESS

Der Fix

Wenn ein späterer Changeset-Tabellenblock einen Namen wiederverwendet, SessionApplyCtx so neu aufbauen, wie es ein neuer Name bereits tut: aUpdateMask freigeben, sessionTableInfo erneut ausführen, ein größeres nCol als das Live-Schema ablehnen. Trunk 3f57024aec / branch-3.53 a1dd7123d8 (2026-08-17) liegt nach diesem GA.

Referenzen

  • https://sqlite.org/src Tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • https://github.com/sqlite/sqlite/blob/b09c88c14082339b66c7b7158d609a771e64ca69/ext/session/sqlite3session.c sessionChangesetApply :5619, sessionUpdateFind :4381-4412
  • Forum https://sqlite.org/bugs/info/2026-08-16T10:15:25Z
  • CVE-2026-50812 Session-NPD ist ab 3.53.2+ geschlossen
Tool herunterladen