Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sqlite-xfer-auth — SQLite 3.53.4 - Élevé - Local - Résidu de privilège - INSERT SELECT xfer ignore la lecture de la source | Kitploit
Outils/GitHubGitHub/abraxas/sqlite-xfer-auth
Analyse des VulnérabilitésAnalyse de CodeExploitationVirtualisation de SécuritéArticles et RechercheSécurité des Bases de DonnéesLabs et Pratique
GitHubabraxas/sqlite-xfer-auth

sqlite-xfer-auth

SQLite 3.53.4 - Élevé - Local - Résidu de privilège - INSERT SELECT xfer ignore la lecture de la source

Voir le dépôt
9il y a 6 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - sqlite-xfer-auth

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

sqlite-xfer-auth

Classe : Privilège résiduel Portée : Locale

SQLite 3.53.4 (b09c88c, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) emprunte toujours le chemin rapide xferOptimization pour INSERT INTO dest SELECT * FROM src. sqlite3AuthCheck est SQLITE_INSERT sur dest uniquement. La copie n'appelle jamais sqlite3Select ni sqlite3AuthRead par colonne sur src. SELECT * FROM src est refusé. L'INSERT SELECT copie le témoin. Le journal de l'authorizer est INSERT:dest.

L'authorizer est désactivé sauf si l'embedder en installe un. Pas de RCE. DRH a traité Fossil d1cdb817 comme une fonctionnalité de la 3.54, pas comme un correctif de la 3.53. La 3.54.0 est encore en draft.

IDpas encore de CVE
ClassePrivilège résiduel (copie de table refusée en READ)
PortéeLocale (embedder sqlite3_set_authorizer)
CWECWE-863
CVSSÉlevé : 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProduitSQLite (Hwaci)
Affecté3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
AuthSQL local contre un authorizer installé qui DENY READ/SELECT sur src et autorise INSERT sur dest
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18850 uniquement

Ce qu'un attaquant peut faire

Préparer INSERT INTO dest SELECT * FROM src lorsque dest est compatible au niveau du schéma et que INSERT est autorisé. Les enregistrements B-tree bruts quittent une table source refusée en READ et atterrissent dans dest. Un simple SELECT * FROM src renvoie SQLITE_AUTH. Le chemin xfer ne compile pas le SELECT, donc le SQLITE_SELECT de la source, le SQLITE_READ au niveau table et le sqlite3AuthRead par colonne ne se déclenchent jamais.

Nécessite un embedder qui a installé sqlite3_set_authorizer comme barrière ACL pour le SQL non fiable / les colonnes. La bibliothèque par défaut a ce callback à NULL. Pas de RCE.

Comment je l'ai trouvé

Même chasse Crit/High sur la 3.53.4 que les autres résidus de cette GA. L'authorizer est documenté à sqlite3_set_authorizer. L'auth INSERT ne concerne que la table dest (insert.c:969). Le xfer est emprunté avant sqlite3Select() (insert.c:1020-1038). xferOptimization copie les enregistrements. Grep de insert.c sur ce pin : un sqlite3AuthCheck, aucun sqlite3AuthRead. SQLITE_OMIT_XFER_OPT n'est pas un flag de build par défaut.

Forum 2026-05-21T03:31:22Z. Le trunk d1cdb817cafd03a4 est réservé à la 3.54. DRH : nouvelle fonctionnalité, ne sera pas rétroportée sur branch-3.53.

Lab

cd lab
./run.sh

Compile l'amalgamation 3.53.4 plus lab/xfer_auth.c. Compose sqlite-xfer-auth. Bind 127.0.0.1:18850. L'oracle est du JSON issu de l'authorizer in-process : SELECT * FROM src refusé ; INSERT INTO dest SELECT * FROM src ok ; dest contient SQLITE-XFER-AUTH-WITNESS ; les actions d'insertion sont INSERT:dest uniquement.

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

Le correctif

Autoriser la source comme le fait la 3.54 d1cdb817 : si un authorizer est enregistré, xferOptimization doit faire un sqlite3AuthCheck SELECT/READ sur src (ou refuser le chemin rapide et retomber sur sqlite3Select). En attendant, les embedders qui DENY READ sur une table doivent aussi DENY INSERT vers tout dest compatible, ou compiler avec -DSQLITE_OMIT_XFER_OPT.

Références

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/insert.c sqlite3AuthCheck INSERT dest, xferOptimization avant sqlite3Select
  • Forum 2026-05-21T03:31:22Z · check-in d1cdb817cafd03a4
  • sqlite3_set_authorizer
Télécharger l’outil