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
216il y a 8 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

Write-up : https://abraxaslabs.tech/research/sqlite-rsync-ssh

sqlite-rsync-ssh

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

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

IDpas encore de CVE
ClasseRCE (injection de commande avec l'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 par echo. Pas de reverse shell.

Ce qu'un attaquant peut faire

Placer ;, $(), 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 avec l'UID distant SSH.

append_escaped_arg(..., 1) entoure d'apostrophes pour le /bin/sh -c local. Ces apostrophes sont consommées localement. OpenSSH concatène l'argv restant en une seule chaîne de commande distante. Le shell de connexion voit les métacaractères sans 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à corrigé sur 3.53.4.

Comment je l'ai trouvé

Vingt recherches dans le code source 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 concerne l'utilitaire rsync). tool/sqlite3_rsync.c popen2 exécute /bin/sh -c. hostSeparator découpe au 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 ; dialoguer avec un vrai sshd ; épingler le brouillon 3.54.0 ; qualifier cela de RCE de bibliothèque.

Lab

cd lab
./run.sh

Compile sqlite3_rsync à partir de l'archive source officielle 3.53.4. Un faux OpenSSH joint l'argv après dest. Origine lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. La commande distante contenait ;echo sans 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 local sh. Ne pas compter sur la survie des apostrophes locales à la jointure d'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
  • Encodage hexadécimal du trunk b0db2db / Fossil eaec2f7f (2026-10-07)
Télécharger l’outil