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-rsync-ssh — SQLite 3.53.4 sqlite3_rsync – Hoch – Remote – RCE – SSH-Dateinamen-Befehlsinjektion | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-rsync-ssh
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlRed TeamingLabs & Praxis
GitHubabraxas/sqlite-rsync-ssh

sqlite-rsync-ssh

SQLite 3.53.4 sqlite3_rsync – Hoch – Remote – RCE – SSH-Dateinamen-Befehlsinjektion

Repository anzeigen
vor 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-rsync-ssh

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

sqlite-rsync-ssh

Klasse: RCE (Command Injection) Reichweite: Remote (UI:R)

SQLite 3.53.4 (b09c88c) sqlite3_rsync quotet USER@HOST:PATH für lokales /bin/sh -c. OpenSSH fügt dann die Remote-argv per Leerzeichen für die Login-Shell zusammen, ohne diese Quotes. Ein Semikolon, $(), Backtick oder | in PATH wird als SSH-Remote-UID ausgeführt. Util, nicht libsqlite3. Der Ada Logics readPow2 x>16 Stack-Smash ist bei diesem Pin geschlossen.

IDnoch keine CVE
KlasseRCE (Command Injection als SSH-Remote-UID)
ReichweiteRemote (Opfer führt sqlite3_rsync aus; UI:R)
CWECWE-78
CVSSHigh: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProduktSQLite sqlite3_rsync Util
Betroffen3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)
AuthOpfer führt sqlite3_rsync mit einem feindlichen USER@HOST:PATH aus
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18910. Echo-Witness. Keine Reverse Shell.

Was ein Angreifer tun kann

Setze ;, $(), Backticks oder | in den Remote-Pfad von sqlite3_rsync USER@HOST:PATH. Das Opfer muss das Util ausführen (UI:R). Der zusätzliche Befehl läuft als SSH-Remote-UID.

append_escaped_arg(..., 1) setzt einfache Anführungszeichen für lokales /bin/sh -c. Diese Quotes werden lokal verbraucht. OpenSSH konkateniert die verbleibende argv zu einem einzigen Remote-Befehlstring. Die Login-Shell sieht die Metazeichen unquoted.

Dies ist nicht libsqlite3. Das Standard-sqlite3.c liefert dieses Protokoll nicht mit. Der Ada Logics Replica Stack-Smash (Cap des readPow2-Exponenten) ist bei 3.53.4 bereits geschlossen.

Wie ich es gefunden habe

Zwanzig Source-Hunts des SQLite-Tags version-3.53.4 nach der 3.53.2 FTS5-/Session-Welle. Die Standardbibliothek hat noch andere Überbleibsel (dieses Paket ist das rsync-Util). tool/sqlite3_rsync.c popen2 führt /bin/sh -c aus. hostSeparator trennt am ersten Doppelpunkt. Der Rückgabewert von append_escaped_arg wird nie geprüft.

Irrwege: den Ada Logics Stack-Smash als noch offen behandeln; eine Reverse Shell labben; mit einem echten sshd sprechen; den Entwurf 3.54.0 pinnen; dies als Library-RCE bezeichnen.

Lab

cd lab
./run.sh

Baut sqlite3_rsync aus dem offiziellen 3.53.4 Source-Zip. Fake-OpenSSH fügt argv nach dest zusammen. Origin lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. Der Remote-Befehl hatte unquoted ;echo. Bind Loopback.

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

Der Fix

Hex-encode Dateinamen, die an den Peer gesendet werden (isFilename==2 / --encoded-filenames), so wie es Trunk b0db2db (2026-10-07, ANT-2026-31X9HVRR) nach diesem GA tut. USER@HOST und --ssh bleiben local-sh-quoting. Verlasse dich nicht darauf, dass lokale einfache Anführungszeichen das OpenSSH-argv-Join überleben.

Referenzen

  • 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, remote ORIGIN/REPLICA SSH argv
  • https://sqlite.org/rsync.html
  • Trunk hex-encode b0db2db / Fossil eaec2f7f (2026-10-07)
Tool herunterladen