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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/kx00007/cve-2026-35196
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubkx00007/cve-2026-35196

CVE-2026-35196

ثاني CVE لا يزال تنفيذًا عن بُعد للتعليمات البرمجية

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-35196 · Chamilo LMS · حقن أوامر نظام التشغيل → RCE


CVE CVSS CWE Auth Type Shell



الباحث: K
نوع الإفصاح: إفصاح مسؤول
الحالة: تم الإصلاح المنتج المتأثر: Chamilo LMS < 2.0 (تم التأكيد على الإصدار v1.11.32)


📋 ملخص الثغرة

الخاصيةالتفاصيل
المنتجChamilo LMS
الإصدار المتأثر< 2.0 (تم التأكيد على الإصدار v1.11.32)
الثغرةحقن أوامر نظام التشغيل
CWECWE-78 — تحييد غير سليم للعناصر الخاصة المستخدمة في أوامر نظام التشغيل
درجة CVSSv3.18.8 (عالية)
المتجهCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
المصادقة المطلوبةنعم (أي مستخدم مصادق بجلسة مسمومة)
نوع الاستغلالتنفيذ تعليمات برمجية عن بُعد بعد المصادقة
الملف المصابmain/inc/ajax/gradebook.ajax.php

🔍 الوصف

توجد ثغرة خطيرة من نوع حقن أوامر نظام التشغيل في إجراء export_all_certificates داخل الملف main/inc/ajax/gradebook.ajax.php في Chamilo LMS الإصدار v1.11.32.

يسترد التطبيق رمز المقرر الدراسي عبر api_get_course_id()، والذي يقرأ مباشرة من $_SESSION['_cid']. يتم ربط هذه القيمة المشتقة من الجلسة دون تطهير في استدعاء shell_exec() — دون استخدام escapeshellarg()، ودون تحقق من القائمة البيضاء، ودون فرض نوع البيانات.

يمكن للمهاجم الذي يتمكن من التلاعب أو تسميم متغير _cid في جلسته (عبر تسميم الجلسة، أو سلسلة IDOR، أو بدائيات أخرى للتلاعب بالجلسة) حقن محارف شل وصفية عشوائية وتحقيق تنفيذ تعليمات برمجية عن بُعد كامل بصلاحيات مستخدم خادم الويب (www-data).


🧩 تحليل السبب الجذري

الملف المصاب: main/inc/ajax/gradebook.ajax.php
الدالة المصابة: export_all_certificates

عندما يشغّل المستخدم إجراء export_all_certificates، يحاول السكربت تشغيل عملية في الخلفية لمعالجة الشهادات:

root@kitploit:~
$courseCode = api_get_course_id(); // Retrieves the value from $_SESSION['_cid']
$sessionId = api_get_session_id();
// ...
$commandScript = api_get_path(SYS_CODE_PATH).'gradebook/cli/export_all_certificates.php';
$userList = implode(',', $userList);

// Flaw: Variables like $courseCode are passed directly to the shell without escapeshellarg()
shell_exec("php $commandScript $courseCode $sessionId $categoryId $userList > /dev/null &");

نظرًا لأن التطبيق يثق ضمنيًا بمحتويات متغيرات الجلسة ويفشل في تهريبها بشكل صحيح قبل إرسالها إلى شل النظام، يمكن للمهاجم الذي يملك جلسة مُتلاعب بها إلحاق أوامر خبيثة وتنفيذها. على سبيل المثال، إذا احتوى _cid على "; touch /tmp/remote_code_by_k; #"، يصبح الأمر الذي يفسّره شل bash/sh:

root@kitploit:~
php /var/www/chamilo/main/gradebook/cli/export_all_certificates.php ; touch /tmp/remote_code_by_k; # ... > /dev/null &

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

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

  1. تسميم الجلسة: يجب على المهاجم أولاً التأثير على متغير $_SESSION['_cid']. يمكن تحقيق ذلك بربط هذه الثغرة بثغرة تسميم جلسة، أو بالتلاعب بقيمة رمز المقرر الدراسي عبر IDOR أو معالجة غير آمنة للمعلمات في مكان آخر من التطبيق لتحديث سياق الجلسة.
  2. حقن الحمولة: اضبط متغير الجلسة _cid على القيمة: "; [MALICIOUS_COMMAND]; #"
  3. التنفيذ: أرسل طلب GET إلى: /main/inc/ajax/gradebook.ajax.php?a=export_all_certificates&cat_id=1 مع ملف تعريف ارتباط الجلسة المسمومة.
  4. النتيجة: ينفّذ الخادم الأمر المُحقن بشكل أعمى بصلاحيات مستخدم تطبيق الويب (www-data).

📊 تحليل الأثر

البُعدالأثر
السريةوصول كامل للقراءة — الكود المصدري، الإعدادات، بيانات اعتماد قاعدة البيانات، /etc/passwd
السلامةكتابة ملفات عشوائية، نشر ويب شيل، التلاعب بقاعدة البيانات
التوافرتعطيل الخدمة، تدمير نظام الملفات، نشر برمجيات الفدية
النطاقعملية خادم الويب (www-data)؛ إمكانية الحركة الجانبية عبر كشف بيانات الاعتماد

🛡️ التوصيات

  • استخدم escapeshellarg(): قم بتغليف جميع المتغيرات المشتقة من المستخدم (مثل $courseCode و $sessionId و $userList) بدالة escapeshellarg() في PHP قبل تمريرها إلى shell_exec() لتحييد محارف نظام التشغيل الوصفية العشوائية.
  • تحقق صارم من الجلسة: تأكد من أن المتغيرات المخزنة في حالة الجلسة (مثل $_SESSION['_cid']) مقيّدة النوع ومُطهّرة بحيث تُحجب هجمات "تسميم الجلسة" أو سلاسل IDOR المحتملة عند نقطة الدخول.
  • فرض الصلاحيات الأقل: قم بإعداد خدمة خادم الويب (www-data) بصلاحيات كتابة مقيدة على نظام الملفات، وقلّل وصول التطبيق إلى ثنائيات شل Linux الأساسية للتخفيف من قدرات ما بعد الاستغلال.

🧪 البيئة

المكوّنالتفاصيل
نظام التشغيلUbuntu Server (Docker)
خادم الويبApache / Nginx
PHP7.x / 8.x
التطبيقChamilo LMS v1.11.32-v2.0
الشل/bin/sh → bash

📎 المراجع

  • المستودع الرسمي لـ Chamilo LMS
  • CWE-78: حقن أوامر نظام التشغيل
  • OWASP: حقن الأوامر
  • CVE-2026-29041 — ثغرة RCE سابقة في Chamilo (CWE-434، CVSS 8.8) من نفس الباحث

👤 الباحث

root@kitploit:~
Handle  : K
GitHub  : https://github.com/kx00007
Focus   : Server-Side Vulnerability RCE, CVE Hunting, Vulnerability Research, Exploit Development
Prior   : CVE-2026-29041 (Chamilo LMS — Authenticated RCE via File Upload)

⚡حاول بجدية أكبر.

تنزيل الأداة