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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-38526-KrayinCRM — تحميل ملف عشوائي مُصادَق عليه يؤدي إلى تنفيذ تعليمات برمجية عن بُعد — تحليل تقني وإعادة إنتاج مُتحكَّم بها لـ CVE-2026-38526 في Webkul Krayin CRM 2.2.x. | Kitploit
أدوات/GitHubGitHub/ish3ng0m4/cve-2026-38526-krayincrm
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالأوراق والأبحاثالتعلم والتعليمتطوير الحمولات
GitHub
ish3ng0m4/cve-2026-38526-krayincrm

CVE-2026-38526-KrayinCRM

تحميل ملف عشوائي مُصادَق عليه يؤدي إلى تنفيذ تعليمات برمجية عن بُعد — تحليل تقني وإعادة إنتاج مُتحكَّم بها لـ CVE-2026-38526 في Webkul Krayin CRM 2.2.x.

عرض المستودع
28منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

CVE-2026-38526 KrayinCRM

رفع ملفات تعسفي بعد المصادقة يؤدي إلى تنفيذ تعليمات برمجية عن بُعد — تحليل تقني وإعادة إنتاج مُتحكَّم بها لثغرة CVE-2026-38526 في Webkul Krayin CRM 2.2.x.

نظرة عامة

CVE-2026-38526 هي ثغرة رفع ملفات تعسفي بعد المصادقة تؤثر على Webkul Krayin CRM 2.2.x.
تُتاح الوظيفة المصابة عبر نقطة نهاية الرفع الخاصة بـ TinyMCE في التطبيق:

POST /admin/tinymce/upload

لا يقيّد التطبيق نوع الملف الذي يمكن رفعه بشكل كافٍ. يمكن لمستخدم مُصادَق عليه إرسال ملف بامتداد قابل للتنفيذ على جانب الخادم، مثل .php. يخزّن التطبيق الملف المرفوع ويعيد عنوان URL الخاص به القابل للوصول.

عندما يسمح النشر بتنفيذ PHP من موقع الرفع، يمكن لاحقًا طلب الملف المرفوع عبر خادم الويب، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد في سياق عملية تطبيق الويب.
يصنّف سجل CVE المنشور الثغرة بتقييم CVSS 3.1: 9.9 (حرجة).

سياق البحث

يحتوي هذا المستودع على تحليلي التقني الخاص وإعادة إنتاجي المُتحكَّم بها للثغرة.

كانت الثغرة قد أُفصح عنها علنًا بالفعل تحت CVE-2026-38526. لا يدّعي هذا العمل اكتشاف الثغرة. كان الغرض من هذا البحث هو فهم التنفيذ المصاب، وإعادة إنتاج مسار الاستغلال في بيئة مُتحكَّم بها، وفحص الظروف التي تحوّل مشكلة رفع الملفات إلى تنفيذ تعليمات برمجية عن بُعد.

استُخدمت الثغرة أيضًا في جهاز Hack The Box GCSB 2026 Nexus، مما وفّر بيئة عملية لدراسة المشكلة.

البرنامج المتأثر

المنتج: Webkul Krayin CRM الإصدارات المتأثرة: 2.2.x الثغرة: رفع ملفات تعسفي الأثر الناتج: تنفيذ تعليمات برمجية عن بُعد المصادقة: مطلوبة متجه الهجوم: الشبكة CWE: CWE-434 — الرفع غير المقيّد لملف من نوع خطير CVSS: 9.9 حرجة CVE: CVE-2026-38526

نقطة النهاية المصابة

تتولى الوظيفة المصابة ما يلي:

/admin/tinymce/upload

تقبل نقطة النهاية ملفًا مرفوعًا عبر المعامل file. يستخرج منطق التطبيق ذو الصلة اسم الملف المخزَّن من اسم الملف الأصلي ويحتفظ بامتداده الأصلي.


هذا السلوك مهم لأن التطبيق لا يكتفي بقبول كائن مرفوع؛ بل يحتفظ بامتداد قابل للتنفيذ يتحكم به المهاجم ويجعل الكائن الناتج قابلًا للوصول عبر آلية تخزين التطبيق.

السبب الجذري

المشكلة الأساسية هي عدم كفاية التحقق من جانب الخادم على الملفات المرفوعة.

يستخدم التطبيق الامتداد الأصلي الذي يوفره العميل عند إنشاء اسم الملف المخزَّن. لا توجد قائمة سماح مقيّدة بما يكفي تمنع أنواع الملفات القابلة للتنفيذ من الوصول إلى طبقة التخزين.

التدفق ذو الصلة هو

لا يعالج استخدام اسم ملف مُولَّد المشكلة الأساسية.

على سبيل المثال، تحويل shell.php إلى اسم ملف مُولَّد مثل .php لا يجعل الملف المرفوع آمنًا إذا استمر الخادم في تفسير ملفات .php كتعليمات PHP برمجية قابلة للتنفيذ.

لماذا يمكن أن يتحول الرفع إلى RCE

لا يعني الرفع غير المقيّد تلقائيًا تنفيذ تعليمات برمجية عن بُعد. يعتمد مسار التنفيذ على تعامل الخادم مع الملف المرفوع. في سيناريو النشر المصاب، تصبح السلسلة

لذلك، ينتج أثر RCE عن مزيج من:

  1. تحقق غير كافٍ من الرفع
  2. الاحتفاظ بامتداد قابل للتنفيذ
  3. تخزين قابل للوصول عبر الويب
  4. السماح بتنفيذ PHP في ذلك الموقع

إذا كان تنفيذ PHP معطّلًا لدليل الرفع، يمكن منع مسار RCE المباشر رغم بقاء ضعف رفع الملفات التعسفي الأساسي.

كيفية تشغيله

  1. التنزيل

wget:

wget https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/upload.py
wget https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/marker.php

curl:

curl -LO https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/upload.py
curl -LO https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/marker.php

2. ضع الملفات في

    poc/
    ├── upload.py
    └── marker.php

3. أنشئ بيئة Python وثبّت الاعتمادية

    python3 -m venv .venv
    source .venv/bin/activate
    pip install requests

4. اجعل PoC قابلاً للتنفيذ

    chmod +x poc/upload.py

6. شغّله

    python3 poc/upload.py \
      --url http://[Lab_IP:PORT] \
      --email [email protected] \
      --password 'YOUR_PASSWORD'

تحليل الاستغلال

يتطلب الاستغلال حسابًا مصادقًا عليه قادرًا على الوصول إلى الوظيفة المعرضة للخطر.

على مستوى عالٍ:

  1. المصادقة على Krayin CRM
  2. الحصول على سياق جلسة التطبيق المطلوب
  3. الوصول إلى /admin/tinymce/upload
  4. إرسال ملف مصمم خصيصًا
  5. يقبل التطبيق الامتداد القابل للتنفيذ
  6. يُكتب الملف في موقع تخزين TinyMCE
  7. يعيد التطبيق عنوان URL للملف الناتج
  8. طلب الملف المرفوع
  9. يُفسَّر PHP بواسطة الخادم
  10. تُنفَّذ الأوامر بامتيازات تطبيق الويب

يُحدَّد سياق التنفيذ الناتج حسب النشر الأساسي. في نشر Linux نموذجي قد يكون هذا حساب خدمة خادم الويب، مثل:

www-data

هذا لا يوفر تلقائيًا امتيازات الجذر على نظام التشغيل. يعتمد التأثير الإضافي على الأذونات وتكوين البيئة المخترقة.

تحليل الشيفرة المصدرية

يمكن اختزال السلوك المعرض للخطر إلى ثلاث عمليات مهمة.

  1. الحصول على الملف المرفوع

     $file = request()->file('file');
    

يستقبل التطبيق الملف المقدم من العميل.

  1. الحفاظ على الامتداد الذي يتحكم فيه العميل

     $filename = md5($file->getClientOriginalName().time())
                 .'.'.$file->getClientOriginalExtension();
    

يُغيَّر اسم الملف نفسه، لكن يُحتفظ بالامتداد الأصلي. هذا تمييز مهم: عشوائية اسم الملف ليست تحققًا من نوع الملف.

  1. تخزين الملف وكشفه

      $path = $file->storeAs($this->storagePath, $filename);
     return [
         'file' => $path,
         'file_name' => $file->getClientOriginalName(),
         'file_url' => Storage::url($path),
     ];
    

يخزّن التطبيق الملف ويوفر عنوان URL الخاص به للعميل.

التأثير

قد يوفر الاستغلال الناجح للمهاجم تنفيذ شيفرة بامتيازات تطبيق الويب.

اعتمادًا على النشر، قد يسمح هذا للمهاجم بـ:
قراءة ملفات التطبيق
الوصول إلى تكوين التطبيق
الحصول على بيانات اعتماد قاعدة البيانات أو أسرار أخرى
تعديل بيانات التطبيق
نشر شيفرة خبيثة إضافية
التحرك نحو أنظمة أخرى يمكن الوصول إليها من المضيف المخترق
محاولة تصعيد الامتيازات بشكل أكبر

يعتمد التأثير الفعلي على امتيازات عملية التطبيق المخترقة وتكوين الأمان للنظام الأساسي.

التخفيف

يجب أن يستخدم التنفيذ الآمن طبقات حماية متعددة بدلاً من الاعتماد على فحص امتداد واحد.

1. القائمة المسموح بها لأنواع الملفات

ينبغي قبول أنواع الملفات المطلوبة صراحةً فقط. على سبيل المثال:

.jpg
.jpeg
.png
.gif
.webp

يجب أن تعكس القائمة المسموح بها الدقيقة المتطلبات المشروعة للتطبيق.

2. التحقق من جانب الخادم

لا تعتمد فقط على:

  1. اسم الملف الأصلي
  2. امتداد الملف
  3. نوع MIME المقدم من العميل يجب أن يتحقق الخادم من المحتوى المرفوع بشكل مستقل.

3. إنشاء أسماء ملفات آمنة

ينبغي أن تحصل الملفات المرفوعة على أسماء تُولّدها الخادم، ويجب ألا تحتفظ بامتدادات قابلة للتنفيذ يتحكم بها المهاجم.

4. منع تنفيذ السكربتات

ينبغي تعطيل PHP وغيرها من المفسّرات من جانب الخادم في المجلدات المخصصة للمحتوى الذي يرفعه المستخدمون. يوفر هذا حدًا أمنيًا إضافيًا حتى في حال تجاوز إحدى ضوابط التحقق من الرفع.

5. فصل الملفات المرفوعة عن كود التطبيق القابل للتنفيذ

حيثما كان ذلك عمليًا، ينبغي تخزين المحتوى المرفوع خارج جذر الويب القابل للتنفيذ وتقديمه عبر آلية خاضعة للتحكم.

6. تقييد أذونات الرفع

ينبغي ألا يكون لنقطة النهاية (endpoint) وصولٌ إلا للمستخدمين المصادَق عليهم والأدوار التي تحتاج فعليًا إلى وظيفة الرفع.

الإسناد

تم الإفصاح عن CVE-2026-38526 علنًا قبل هذا البحث.

يمثل هذا المستودع تحليلي التقني المستقل وإعادة الإنتاج الخاضعة للتحكم للثغرة. ولا يدّعي الاكتشاف الأصلي أو إسناد CVE.

الباحث: Gabriel D. Ishengoma
مجال التركيز: أبحاث الثغرات / الأمن الهجومي

تنزيل الأداة