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-xfer-auth — SQLite 3.53.4 – Hoch – Lokal – Verbleibendes Privileg – INSERT SELECT xfer überspringt Quell-READ | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-xfer-auth
SchwachstellenanalyseCode-AnalyseExploitationSicherheitsvirtualisierungPapers & ForschungDatenbanksicherheitLabs & Praxis
GitHubabraxas/sqlite-xfer-auth

sqlite-xfer-auth

SQLite 3.53.4 – Hoch – Lokal – Verbleibendes Privileg – INSERT SELECT xfer überspringt Quell-READ

Repository anzeigen
9vor 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-xfer-auth

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

sqlite-xfer-auth

Klasse: Privilegien-Überrest Reichweite: Lokal

SQLite 3.53.4 (b09c88c, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) nimmt weiterhin den xferOptimization-Fast-Path für INSERT INTO dest SELECT * FROM src. sqlite3AuthCheck ist SQLITE_INSERT nur auf dest. Die Kopie ruft niemals sqlite3Select oder das spaltenweise sqlite3AuthRead auf src auf. SELECT * FROM src wird verweigert. Das INSERT SELECT kopiert den Witness. Das Authorizer-Log ist INSERT:dest.

Der Authorizer ist aus, es sei denn, der Embedder installiert einen. Kein RCE. DRH behandelte Fossil d1cdb817 als 3.54-Feature, nicht als 3.53-Bugfix. 3.54.0 ist noch Entwurf.

IDnoch keine CVE
KlassePrivilegien-Überrest (READ-verweigerte Tabellenkopie)
ReichweiteLokal (Embedder sqlite3_set_authorizer)
CWECWE-863
CVSSHoch: 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProduktSQLite (Hwaci)
Betroffen3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
Authlokales SQL gegen einen installierten Authorizer, der READ/SELECT auf src verweigert und INSERT auf dest erlaubt
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18850

Was ein Angreifer tun kann

INSERT INTO dest SELECT * FROM src vorbereiten, wenn dest schema-kompatibel ist und INSERT erlaubt ist. Rohe B-Tree-Records verlassen eine READ-verweigerte Quelltabelle und landen in dest. Ein bloßes SELECT * FROM src ist SQLITE_AUTH. Der xfer-Pfad kompiliert das SELECT nicht, daher werden Quell-SQLITE_SELECT, tabellenweites SQLITE_READ und spaltenweises sqlite3AuthRead nie ausgelöst.

Erfordert einen Embedder, der sqlite3_set_authorizer als Gate für nicht vertrauenswürdiges SQL / Spalten-ACL installiert hat. Die Standardbibliothek hat diesen Callback auf NULL. Kein RCE.

Wie ich es gefunden habe

Dieselbe 3.53.4-Crit/High-Jagd wie bei den anderen Überresten auf diesem GA. Der Authorizer ist unter sqlite3_set_authorizer dokumentiert. INSERT-Auth gilt nur für die dest-Tabelle (insert.c:969). xfer wird vor sqlite3Select() genommen (insert.c:1020-1038). xferOptimization kopiert Records. Grep von insert.c auf diesem Pin: ein sqlite3AuthCheck, kein sqlite3AuthRead. SQLITE_OMIT_XFER_OPT ist kein Standard-Build-Flag.

Forum 2026-05-21T03:31:22Z. Trunk d1cdb817cafd03a4 ist nur 3.54. DRH: neues Feature, kommt nicht auf branch-3.53.

Lab

cd lab
./run.sh

Baut Amalgamation 3.53.4 plus lab/xfer_auth.c. Compose sqlite-xfer-auth. Bind 127.0.0.1:18850. Oracle ist JSON vom In-Process-Authorizer: SELECT * FROM src verweigert; INSERT INTO dest SELECT * FROM src ok; dest hat SQLITE-XFER-AUTH-WITNESS; Insert-Aktionen sind nur INSERT:dest.

SUCCESS sqlite-xfer-auth how=xfer-opt-skip-src-read select-src=denied insert-select=ok dest-has-witness=yes SQLITE-XFER-AUTH-WITNESS

Der Fix

Die Quelle so autorisieren, wie es 3.54 d1cdb817 tut: Wenn ein Authorizer registriert ist, muss xferOptimization sqlite3AuthCheck SELECT/READ auf src durchführen (oder den Fast-Path verweigern und auf sqlite3Select zurückfallen). Bis dahin müssen Embedder, die READ auf einer Tabelle verweigern, weiterhin INSERT in jedes kompatible dest verweigern oder mit -DSQLITE_OMIT_XFER_OPT kompilieren.

Referenzen

  • sqlite.org/src Tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/insert.c sqlite3AuthCheck INSERT dest, xferOptimization vor sqlite3Select
  • Forum 2026-05-21T03:31:22Z · Check-in d1cdb817cafd03a4
  • sqlite3_set_authorizer
Tool herunterladen