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-rsync-ssh — SQLite 3.53.4 sqlite3_rsync - Élevé - À distance - RCE - Injection de commande via nom de fichier SSH | Kitploit
Outils/GitHubGitHub/abraxas/sqlite-rsync-ssh
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleRed TeamingLabs et Pratique
GitHubabraxas/sqlite-rsync-ssh

sqlite-rsync-ssh

SQLite 3.53.4 sqlite3_rsync - Élevé - À distance - RCE - Injection de commande via nom de fichier SSH

Voir le dépôt
il 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-rsync-ssh

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

sqlite-rsync-ssh

Classe : RCE (injection de commande) Portée : Distante (UI:R)

SQLite 3.53.4 (b09c88c) sqlite3_rsync met USER@HOST:PATH entre guillemets pour le /bin/sh -c local. OpenSSH joint ensuite par des espaces les argv distants pour le shell de connexion sans ces guillemets. Un point-virgule, $(), un backtick ou | dans PATH s'exécute en tant qu'UID distant SSH. Utilitaire, pas libsqlite3. Le stack smash readPow2 x>16 d'Ada Logics est fermé sur ce pin.

IDpas encore de CVE
ClasseRCE (injection de commande en tant qu'UID distant SSH)
PortéeDistante (la victime exécute sqlite3_rsync ; UI:R)
CWECWE-78
CVSSÉlevé : 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProduitSQLite utilitaire sqlite3_rsync
Affecté3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)
Authla victime exécute sqlite3_rsync avec un USER@HOST:PATH hostile
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18910 uniquement. Témoin echo. Pas de reverse shell.

Ce qu'un attaquant peut faire

Placez ;, $(), des backticks ou | dans le chemin distant de sqlite3_rsync USER@HOST:PATH. La victime doit exécuter l'utilitaire (UI:R). La commande supplémentaire s'exécute en tant qu'UID distant SSH.

append_escaped_arg(..., 1) met entre guillemets simples pour le /bin/sh -c local. Ces guillemets sont consommés localement. OpenSSH concatène les argv restants en une seule chaîne de commande distante. Le shell de connexion voit les métacaractères non protégés par des guillemets.

Ce n'est pas libsqlite3. Le sqlite3.c par défaut n'embarque pas ce protocole. Le stack smash de la réplique Ada Logics (plafond d'exposant readPow2) est déjà fermé sur 3.53.4.

Comment je l'ai trouvé

Vingt recherches dans les sources du tag SQLite version-3.53.4 après la vague FTS5 / session de 3.53.2. La bibliothèque par défaut contient encore d'autres résidus (ce pack est l'utilitaire rsync). tool/sqlite3_rsync.c popen2 exécute /bin/sh -c. hostSeparator découpe sur le premier deux-points. Le retour de append_escaped_arg n'est jamais vérifié.

Fausses pistes : considérer le stack smash d'Ada Logics comme encore ouvert ; monter un reverse shell en lab ; parler à un vrai sshd ; épingler le brouillon 3.54.0 ; qualifier cela de RCE de bibliothèque.

Lab

cd lab
./run.sh

Compile sqlite3_rsync depuis l'archive source officielle 3.53.4. Le faux OpenSSH joint les argv après dest. Origine lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. La commande distante contenait ;echo non protégé par des guillemets. Bind sur loopback.

SUCCESS sqlite-rsync-ssh how=openssh-argv-join dest=lab@host remote-has-semicolon=yes SQLITE-RSYNC-SSH-WITNESS

Le correctif

Encoder en hexadécimal les noms de fichiers envoyés au pair (isFilename==2 / --encoded-filenames) comme le fait le trunk b0db2db (2026-10-07, ANT-2026-31X9HVRR) après cette GA. USER@HOST et --ssh restent en quoting sh local. Ne pas compter sur la survie des guillemets simples locaux à la jointure argv d'OpenSSH.

Références

  • https://sqlite.org/src pin https://github.com/sqlite/sqlite/tree/version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • https://github.com/sqlite/sqlite/blob/version-3.53.4/tool/sqlite3_rsync.c append_escaped_arg, popen2, argv SSH distant ORIGIN/REPLICA
  • https://sqlite.org/rsync.html
  • Trunk hex-encode b0db2db / Fossil eaec2f7f (2026-10-07)
Télécharger l’outil