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-cte-nest — SQLite 3.53.4 – Hoch – Lokal – Absturz – verschachtelte CTEs umgehen die nNestSel-View-Tiefenbegrenzung | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-cte-nest
Statische AnalyseSchwachstellenanalyseExploitationFuzzingPapers & ForschungDatenbanksicherheit
GitHubabraxas/sqlite-cte-nest

sqlite-cte-nest

SQLite 3.53.4 – Hoch – Lokal – Absturz – verschachtelte CTEs umgehen die nNestSel-View-Tiefenbegrenzung

Repository anzeigen
22vor 8 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-cte-nest

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

Write-up: https://abraxaslabs.tech/research/sqlite-cte-nest

sqlite-cte-nest

Klasse: Crash Reichweite: Lokal

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) - Hwaci

sqlite3ResultSetOfSelect erhöht nNestSel und meldet VIEWs and/or subqueries nested too deep, wenn die Kette SQLITE_LIMIT_EXPR_DEPTH erreicht. Verschachtelte VIEWs stoßen bei diesem Stand bereits an diese Grenze. Das Anhängen von CTEs in select.c:5754 (sqlite3SrcItemAttachSubquery) erhöht nNestSel nicht. selectExpander / sqlite3WalkSelect rekursieren dann durch die CTE-Kette, bis der C-Stack zusammenbricht.

Eine kleine CTE-Kette liefert eine Zeile. Verschachteltes FROM bei N=25000 führt zu einem Parser-Recursion limit und stürzt nicht ab. Verschachtelte VIEWs bei .limit expr_depth 20 melden too-deep. CTE N=25000 ist ein ASan-Stack-Overflow. Kein RCE.

IDnoch keine CVE
KlasseCrash (ASan-Stack-Overflow in selectExpander; kein nachgewiesener RCE)
ReichweiteLokal (nicht vertrauenswürdiges SQL oder verschachteltes CTE-Schema)
CWECWE-674
CVSSHoch: 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 (b09c88c); Überbleibsel des späteren Trunk-CTE nNestSel
Authnicht vertrauenswürdiges SQL oder eine eingeschleuste WITH-Kette
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18810. ASan-Amalgamation. Crash-Nachweis.

Was ein Angreifer tun kann

Eine lange CTE-Kette einspeisen, als SQL oder als VIEW-Body in einer nicht vertrauenswürdigen .db:

WITH c0 AS (SELECT 1),
     c1 AS (SELECT * FROM c0),
     ...
     cN AS (SELECT * FROM cN-1)
SELECT * FROM cN;

selectExpander durchläuft jeden CTE als verschachtelte FROM-Unterabfrage. nNestSel bewegt sich nie. Der Hostprozess stirbt auf dem C-Stack. Verschachtelte VIEWs sind bereits begrenzt. Verschachteltes FROM erreicht das Rekursionslimit des Parsers. Dieser Rest ist der CTE-Attach-Pfad. SQLite wertet die CTE-Namen nicht in einer Shell aus. Absturz, kein RCE.

Wie ich es gefunden habe

Zwanzig Quellcode-Durchsuchungen von https://github.com/sqlite/sqlite Tag https://github.com/sqlite/sqlite/releases/tag/version-3.53.4. Verschachtelte VIEWs waren auf diesem Pin begrenzt (3f3fb9b638 / branch-3.53 38430aa5ed, 2026-06-16). CTE-Attach war es nicht. Trunk f547308713 (2026-10-05) liegt nach diesem GA.

Bereits dokumentierte Irrwege: verschachtelte VIEWs als den Absturz zu behandeln (sie melden too-deep); verschachteltes FROM N=25000 als den Absturz zu behandeln (Parser Recursion limit); eine 5-CTE-Kette als Beweis dafür zu nehmen, dass die Begrenzung greift.

Lab

cd lab
./run.sh

Offizielles sqlite-src-3530400-Zip, ASan-Amalgamation, Compose sqlite-cte-nest, veröffentlicht 127.0.0.1:18810. Binde es an Loopback. Richte dies nicht auf das SQLite von jemand anderem.

SUCCESS sqlite-cte-nest how=asan-stack-overflow crash-n=25000 small-cte=ok nested-views=too-deep nested-from=rejected SQLITE-CTE-NEST-WITNESS

Die Behebung

nNestSel beim CTE-Attach inkrementieren, so wie es sqlite3ResultSetOfSelect bereits für VIEWs tut, und bei SQLITE_LIMIT_EXPR_DEPTH einen Fehler ausgeben. Trunk f547308713 (2026-10-05, „Limit the depth of recursion for CTEs using SQLITE_LIMIT_EXPR_DEPTH") ist diese Art von Patch. Er ist nicht in 3.53.4 enthalten.

Referenzen

  • https://github.com/sqlite/sqlite Tag https://github.com/sqlite/sqlite/releases/tag/version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Kanonisch https://sqlite.org/src SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
  • src/select.c sqlite3ResultSetOfSelect (nNestSel++), CTE-Attach :5754
  • src/walker.c sqlite3WalkSelectFrom Subquery-Walk
  • selectExpander / sqlite3SelectExpand
  • Forum-Bug 2026-10-04T04:58:58Z; Trunk f547308713
Tool herunterladen