Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
sqlite-xfer-auth — SQLite 3.53.4 - Alta - Locale - Privilegio residuo - INSERT SELECT xfer salta la lettura dell'origine | Kitploit
Strumenti/GitHubGitHub/abraxas/sqlite-xfer-auth
Analisi delle VulnerabilitàAnalisi del CodiceExploitVirtualizzazione per la SicurezzaPaper e RicercaSicurezza dei DatabaseLab e Pratica
GitHubabraxas/sqlite-xfer-auth

sqlite-xfer-auth

SQLite 3.53.4 - Alta - Locale - Privilegio residuo - INSERT SELECT xfer salta la lettura dell'origine

Vedi Repository
96 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Abraxas Labs - sqlite-xfer-auth

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

sqlite-xfer-auth

Classe: Privilegio residuo Portata: Locale

SQLite 3.53.4 (b09c88c, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) utilizza ancora il percorso rapido xferOptimization per INSERT INTO dest SELECT * FROM src. sqlite3AuthCheck è SQLITE_INSERT solo su dest. La copia non chiama mai sqlite3Select né sqlite3AuthRead per colonna su src. SELECT * FROM src viene negato. L'INSERT SELECT copia il witness. Il log dell'authorizer è INSERT:dest.

L'authorizer è disattivato a meno che l'embedder non ne installi uno. Non è RCE. DRH ha trattato Fossil d1cdb817 come una funzionalità della 3.54, non come un bugfix della 3.53. La 3.54.0 è ancora in bozza.

IDnessuna CVE al momento
ClassePrivilegio residuo (copia di tabella con READ negato)
PortataLocale (embedder sqlite3_set_authorizer)
CWECWE-863
CVSSAlto: 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProdottoSQLite (Hwaci)
Affected3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
AuthSQL locale contro un authorizer installato che nega READ/SELECT su src e consente INSERT su dest
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18850

Cosa può fare un attaccante

Preparare INSERT INTO dest SELECT * FROM src quando dest è compatibile a livello di schema e INSERT è consentito. I record B-tree grezzi lasciano una tabella sorgente con READ negato e finiscono in dest. Il semplice SELECT * FROM src restituisce SQLITE_AUTH. Il percorso xfer non compila la SELECT, quindi SQLITE_SELECT sulla sorgente, SQLITE_READ a livello di tabella e sqlite3AuthRead per colonna non vengono mai attivati.

Richiede un embedder che abbia installato sqlite3_set_authorizer come gate ACL per SQL non attendibile / colonne. La libreria predefinita ha quel callback impostato a NULL. Non è RCE.

Come l'ho trovato

Stessa caccia Crit/High alla 3.53.4 delle altre vulnerabilità residue su questa GA. L'authorizer è documentato in sqlite3_set_authorizer. L'autorizzazione INSERT è solo sulla tabella dest (insert.c:969). xfer viene preso prima di sqlite3Select() (insert.c:1020-1038). xferOptimization copia i record. Grep di insert.c su questo pin: un sqlite3AuthCheck, nessun sqlite3AuthRead. SQLITE_OMIT_XFER_OPT non è un flag di build predefinito.

Forum 2026-05-21T03:31:22Z. Il trunk d1cdb817cafd03a4 è solo per la 3.54. DRH: nuova funzionalità, non verrà portata sul branch-3.53.

Lab

cd lab
./run.sh

Compila l'amalgamation 3.53.4 più lab/xfer_auth.c. Compose sqlite-xfer-auth. Bind 127.0.0.1:18850. L'oracolo è JSON dall'authorizer in-process: SELECT * FROM src negato; INSERT INTO dest SELECT * FROM src ok; dest contiene SQLITE-XFER-AUTH-WITNESS; le azioni di insert sono solo 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

La correzione

Autorizzare la sorgente come fa la 3.54 d1cdb817: se è registrato un authorizer, xferOptimization deve eseguire sqlite3AuthCheck SELECT/READ su src (oppure rifiutare il percorso rapido e passare a sqlite3Select). Fino ad allora, gli embedder che negano READ su una tabella devono comunque negare INSERT verso qualsiasi dest compatibile, oppure compilare con -DSQLITE_OMIT_XFER_OPT.

Riferimenti

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/insert.c sqlite3AuthCheck INSERT dest, xferOptimization prima di sqlite3Select
  • Forum 2026-05-21T03:31:22Z · check-in d1cdb817cafd03a4
  • sqlite3_set_authorizer
Scarica lo strumento