Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sqlite-rsync-ssh — SQLite 3.53.4 sqlite3_rsync — высокий уровень — удалённый — RCE — инъекция команд через имя файла SSH | Kitploit
Инструменты/GitHubGitHub/abraxas/sqlite-rsync-ssh
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеRed TeamingЛаборатории и Практика
GitHubabraxas/sqlite-rsync-ssh

sqlite-rsync-ssh

SQLite 3.53.4 sqlite3_rsync — высокий уровень — удалённый — RCE — инъекция команд через имя файла SSH

Репозиторий
6 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Abraxas Labs - sqlite-rsync-ssh

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

sqlite-rsync-ssh

Класс: RCE (инъекция команд) Достижимость: Удалённая (UI:R)

SQLite 3.53.4 (b09c88c) sqlite3_rsync заключает USER@HOST:PATH в кавычки для локального /bin/sh -c. Затем OpenSSH объединяет удалённый argv через пробел для login shell без этих кавычек. Точка с запятой, $(), обратная кавычка или | в PATH выполняются от имени удалённого UID SSH. Это утилита, а не libsqlite3. Переполнение стека readPow2 x>16 от Ada Logics закрыто на этом пине.

IDCVE пока нет
КлассRCE (инъекция команд от имени удалённого UID SSH)
ДостижимостьУдалённая (жертва запускает 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
ПродуктSQLite утилита sqlite3_rsync
Затронуто3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)
Аутентификацияжертва запускает sqlite3_rsync с враждебным USER@HOST:PATH
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18910. Эхо-свидетель. Без reverse shell.

Что может сделать атакующий

Поместите ;, $(), обратные кавычки или | в удалённый путь sqlite3_rsync USER@HOST:PATH. Жертва должна запустить утилиту (UI:R). Дополнительная команда выполняется от имени удалённого UID SSH.

append_escaped_arg(..., 1) заключает в одинарные кавычки для локального /bin/sh -c. Эти кавычки поглощаются локально. OpenSSH объединяет оставшийся argv в одну строку удалённой команды. Login shell видит метасимволы без кавычек.

Это не libsqlite3. Стандартный sqlite3.c не содержит этого протокола. Переполнение стека в реплике Ada Logics (ограничение экспоненты readPow2) уже закрыто в 3.53.4.

Как я это нашёл

Двадцать поисков по исходникам тега SQLite version-3.53.4 после волны FTS5 / session в 3.53.2. В стандартной библиотеке всё ещё есть другие остатки (этот пакет — утилита rsync). tool/sqlite3_rsync.c popen2 выполняет /bin/sh -c. hostSeparator разделяет по первому двоеточию. Возврат append_escaped_arg никогда не проверяется.

Ошибочные пути: считать переполнение стека Ada Logics всё ещё открытым; тестировать reverse shell в лаборатории; обращаться к настоящему sshd; закреплять черновик 3.54.0; называть это RCE в библиотеке.

Лаборатория

cd lab
./run.sh

Собирает sqlite3_rsync из официального zip-архива исходников 3.53.4. Поддельный OpenSSH объединяет argv после dest. Origin lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. Удалённая команда содержала ;echo без кавычек. Привязка к loopback.

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

Исправление

Hex-кодируйте имена файлов, отправляемые узлу (isFilename==2 / --encoded-filenames), как это делает trunk b0db2db (2026-10-07, ANT-2026-31X9HVRR) после этого GA. USER@HOST и --ssh остаются с локальным sh-квотированием. Не полагайтесь на то, что локальные одинарные кавычки выживут при объединении argv в OpenSSH.

Ссылки

  • https://sqlite.org/src пин 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, удалённый ORIGIN/REPLICA SSH argv
  • https://sqlite.org/rsync.html
  • Trunk hex-encode b0db2db / Fossil eaec2f7f (2026-10-07)
Скачать инструмент