Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
sqlite-rsync-ssh — SQLite 3.53.4 sqlite3_rsync - High - Remote - RCE - SSH filename command injection | Kitploit
Tools/GitHubGitHub/abraxas/sqlite-rsync-ssh
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlRed TeamingLabs & Practice
GitHubabraxas/sqlite-rsync-ssh

sqlite-rsync-ssh

SQLite 3.53.4 sqlite3_rsync - High - Remote - RCE - SSH filename command injection

View Repository
6 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Abraxas Labs - sqlite-rsync-ssh

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

sqlite-rsync-ssh

Class: RCE (command injection) Reach: Remote (UI:R)

SQLite 3.53.4 (b09c88c) sqlite3_rsync quotes USER@HOST:PATH for local /bin/sh -c. OpenSSH then space-joins the remote argv for the login shell without those quotes. A semicolon, $(), backtick, or | in PATH runs as the SSH remote UID. Util, not libsqlite3. Ada Logics readPow2 x>16 stack smash is closed on this pin.

IDno CVE yet
ClassRCE (command injection as the SSH remote UID)
ReachRemote (victim runs sqlite3_rsync; 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
ProductSQLite sqlite3_rsync util
Affected3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)
Authvictim runs sqlite3_rsync with a hostile USER@HOST:PATH
LicenseGNU Affero GPL v3.0
Lab127.0.0.1:18910 only. Echo witness. No reverse shell.

What an attacker can do

Put ;, $(), backticks, or | in the remote path of sqlite3_rsync USER@HOST:PATH. The victim must run the util (UI:R). The extra command runs as the SSH remote UID.

append_escaped_arg(..., 1) single-quotes for local /bin/sh -c. Those quotes are consumed locally. OpenSSH concatenates remaining argv into one remote command string. The login shell sees the metacharacters unquoted.

This is not libsqlite3. Default sqlite3.c does not ship this protocol. The Ada Logics replica stack smash (readPow2 exponent cap) is already closed on 3.53.4.

How I found it

Twenty source hunts of SQLite tag version-3.53.4 after the 3.53.2 FTS5 / session wave. Default library still has other leftovers (this pack is the rsync util). tool/sqlite3_rsync.c popen2 execs /bin/sh -c. hostSeparator splits on the first colon. append_escaped_arg return is never checked.

Wrong turns: treating the Ada Logics stack smash as still open; labbing a reverse shell; talking to a real sshd; pinning draft 3.54.0; calling this a library RCE.

Lab

cd lab
./run.sh

Builds sqlite3_rsync from the official 3.53.4 source zip. Fake OpenSSH joins argv after dest. Origin lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. Remote command had unquoted ;echo. Bind loopback.

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

The fix

Hex-encode filenames sent to the peer (isFilename==2 / --encoded-filenames) the way trunk b0db2db (2026-10-07, ANT-2026-31X9HVRR) does after this GA. USER@HOST and --ssh stay local-sh quoting. Do not rely on local single quotes surviving OpenSSH argv join.

References

  • 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)
Download Tool