
استشارة إفصاح مسؤول عن CVE-2026-79294، وهو XSS مخزّن في معاينة HTML artifact الخاصة بـ Moonshot AI Kimi عبر عرض Share العام مما يتيح سرقة رمز الجلسة والاستيلاء على الحساب.
CVE-2026-79294 — XSS مخزّن في معاينة قطعة HTML الفنية في Moonshot AI Kimi، يُسلَّم عبر عرض المشاركة العام، مما يؤدي إلى تسريب رمز الجلسة وإثبات الاستيلاء على الحساب. إشعار إفصاح مسؤول.
XSS مخزّن في معاينة قطعة HTML الفنية في Moonshot AI Kimi، يمكن الوصول إليه عبر عرض المشاركة العام، مما يؤدي إلى سرقة رمز الجلسة والاستيلاء على الحساب.
| المورّد / المنتج | Moonshot AI — Kimi |
| المكوّنات | عرض معاينة قطعة HTML الفنية؛ عرض المشاركة العام |
| الضعف | CWE-79 — عدم التحييد الصحيح للمدخلات أثناء توليد صفحة الويب |
يعرض Kimi قطع HTML الفنية المولّدة من النموذج في لوحة معاينة داخل أصل التطبيق نفسه، دون تحييد السكربت. يؤدي مشاركة محادثة إلى نشر تلك القطعة الفنية على رابط مشاركة عام، لذا يعمل السكربت الذي أنشأه حساب واحد في متصفح أي شخص يفتح الرابط.
قيم الجلسة التي يعتمد عليها Kimi محفوظة في localStorage وبالتالي يمكن قراءتها
بواسطة ذلك السكربت:
access_token
refresh_token
msh_user_id
وبالتالي لا يتوقف تنفيذ السكربت عند حد تنفيذ السكربت. يمكن قراءة تلك القيم الثلاث من متصفح الضحية، وإرسالها إلى أي مكان، وإعادة تشغيلها للحصول على جلسة موثّقة باسم تلك الضحية.
حساب المهاجم → قطعة فنية تحتوي على سكربت تسريب → مشاركة عامة
→ الضحية يفتح الرابط → يعمل السكربت في أصل Kimi
→ تصل قيم localStorage الثلاث إلى المهاجم
→ يُعاد تشغيلها في متصفح نظيف → موثّق باسم الضحية
يحتاج المهاجم إلى حساب عادي. لا يحتاج الضحية سوى إلى فتح رابط مشاركة أثناء تسجيل الدخول — وهذا هو الغرض من روابط المشاركة.
| ما لوحظ | كيف |
|---|---|
| يعمل السكربت في متصفح الضحية | وصل طلب إلى نقطة نهاية المهاجم، صادر من جلسة الضحية |
| القيم الثلاث قابلة للقراءة بواسطة السكربت | كانت الثلاث جميعها موجودة في جسم ذلك الطلب |
| القيم توثّق من تلقاء نفسها | كُتبت في متصفح لم يسجّل الدخول إلى Kimi قط؛ بعد إعادة التحميل، احتفظ ذلك المتصفح بجلسة موثّقة |
| القيم هي السبب | الضبط: المتصفح نفسه، مع حذف القيم، إعادة التحميل — بقي غير موثّق |
كلا الحسابين المعنيين أُنشئا وأُديرا بواسطة الباحث. لم يتم الوصول إلى بيانات أي طرف ثالث في أي مرحلة.
السلسلة موثّقة أعلاه بالكامل. الحمولة العاملة ونقطة النهاية المستقبِلة محجوبتان — فنشرهما سيؤدي إلى تسليح الهجوم بدلاً من وصفه.
تأخذ موجه القطعة الفنية الشكل التالي:
Generate an HTML page that reads the three localStorage values above
and POSTs them to <attacker endpoint>.