Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sqlite-rsync-ssh — SQLite 3.53.4 sqlite3_rsync - Alta - Remota - RCE - Inyección de comandos en nombre de archivo SSH | Kitploit
Herramientas/GitHubGitHub/abraxas/sqlite-rsync-ssh
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlRed TeamingLabs y Práctica
GitHubabraxas/sqlite-rsync-ssh

sqlite-rsync-ssh

SQLite 3.53.4 sqlite3_rsync - Alta - Remota - RCE - Inyección de comandos en nombre de archivo SSH

Ver Repositorio
hace 6 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - sqlite-rsync-ssh

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

sqlite-rsync-ssh

Clase: RCE (inyección de comandos) Alcance: Remoto (UI:R)

SQLite 3.53.4 (b09c88c) sqlite3_rsync entrecomilla USER@HOST:PATH para el /bin/sh -c local. OpenSSH luego une con espacios el argv remoto para el shell de inicio de sesión sin esas comillas. Un punto y coma, $(), backtick o | en PATH se ejecuta como el UID remoto de SSH. Util, no libsqlite3. El desbordamiento de pila readPow2 x>16 de Ada Logics está cerrado en este pin.

IDsin CVE todavía
ClaseRCE (inyección de comandos como el UID remoto de SSH)
AlcanceRemoto (la víctima ejecuta sqlite3_rsync; UI:R)
CWECWE-78
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
ProductoSQLite util sqlite3_rsync
Afectado3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)
Authla víctima ejecuta sqlite3_rsync con un USER@HOST:PATH hostil
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18910. Testigo de eco. Sin reverse shell.

Qué puede hacer un atacante

Coloca ;, $(), backticks o | en la ruta remota de sqlite3_rsync USER@HOST:PATH. La víctima debe ejecutar el util (UI:R). El comando extra se ejecuta como el UID remoto de SSH.

append_escaped_arg(..., 1) entrecomilla con comillas simples para el /bin/sh -c local. Esas comillas se consumen localmente. OpenSSH concatena el argv restante en una única cadena de comando remota. El shell de inicio de sesión ve los metacaracteres sin comillas.

Esto no es libsqlite3. El sqlite3.c por defecto no incluye este protocolo. El desbordamiento de pila de la réplica de Ada Logics (límite del exponente readPow2) ya está cerrado en 3.53.4.

Cómo lo encontré

Veinte búsquedas en el código fuente de la etiqueta version-3.53.4 de SQLite tras la oleada de FTS5 / session de 3.53.2. La biblioteca por defecto todavía tiene otros restos (este paquete es el util rsync). tool/sqlite3_rsync.c popen2 ejecuta /bin/sh -c. hostSeparator divide en el primer dos puntos. El retorno de append_escaped_arg nunca se comprueba.

Caminos equivocados: tratar el desbordamiento de pila de Ada Logics como aún abierto; montar un laboratorio con una reverse shell; hablar con un sshd real; fijar el borrador 3.54.0; llamar a esto un RCE de biblioteca.

Laboratorio

cd lab
./run.sh

Compila sqlite3_rsync desde el zip oficial del código fuente 3.53.4. El OpenSSH falso une el argv después de dest. Origen lab@host:;echo SQLITE-RSYNC-SSH-WITNESS>/work/sandbox/pwned.txt. El comando remoto tenía ;echo sin comillas. Bind en loopback.

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

La solución

Codifica en hexadecimal los nombres de archivo enviados al par (isFilename==2 / --encoded-filenames) tal como lo hace el trunk b0db2db (2026-10-07, ANT-2026-31X9HVRR) después de este GA. USER@HOST y --ssh permanecen con quoting local de sh. No confíes en que las comillas simples locales sobrevivan a la unión de argv de OpenSSH.

Referencias

  • 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)
Descargar herramienta