
CVE-2026-109618/109619 بحث استغلال session.upload_progress في PHP — إثبات المفهوم والتحليل
بحث أمني مستقل حول ثغرات session.upload_progress الحرجة في PHP (CVSS v4.0 9.2).
المؤلف: Qi Deng (@ikow)
التاريخ: 2026-10-21
التحليل الكامل: qideng.substack.com
ثغرتان حرجتان لتنفيذ التعليمات البرمجية عن بُعد (RCE) قبل المصادقة في معالج session.upload_progress في نواة PHP، تؤثران على PHP 5.4.0 حتى 8.5.x. يحتوي هذا المستودع على إثباتات مفهوم (POC) للتحقق وإعداد مختبر لاختبارات الأمان المصرّح بها.
| السلسلة | النوع | الشروط | التحقق |
|---|---|---|---|
| حقن ملف الجلسة + LFI | خطأ منطقي | upload_progress=On (افتراضي) + LFI في التطبيق | ✅ RCE |
| var_destroy UAF → استبدال المعالج | تلف الذاكرة | unserialize() + /proc/self/mem | ✅ ASAN + RCE |
عدم تطابق المعالج → __destruct | إلغاء التسلسل | عدم تطابق المعالج عبر الأدلة + POP gadget | ✅ RCE |
session.use_only_cookies (PR #22113)__destruct في var_destroy — heap-use-after-free مؤكَّد بواسطة ASANPS(serializer) لا يُعاد ضبطه في RSHUTDOWN — تسريب المُسلسِل عبر الطلبات في FPM__destruct يُستدعى عند فشل فك الترميز — حقن كائنات عبر عدم تطابق المعالج + بيانات زائدةpoc/
verify_session_injection.py — Verify filename injection into session files
verify_uaf_asan.php — Trigger ASAN heap-use-after-free (var_destroy)
verify_handler_mismatch.py — Verify handler mismatch → object deserialization
lab/
docker-compose.yml — PHP 8.2.34 FPM + nginx lab environment
Dockerfile — Vulnerable PHP build
php.ini — Lab configuration
setup.sh — One-click lab setup
docs/
ANALYSIS.md — Full technical analysis
# Start the lab
cd lab && ./setup.sh
# Verify session injection
python3 poc/verify_session_injection.py --target http://127.0.0.1:18080
# Verify UAF (requires ASAN build)
docker exec php-asan-lab php poc/verify_uaf_asan.php
# Verify handler mismatch
python3 poc/verify_handler_mismatch.py --target http://127.0.0.1:18080
session.upload_progress); Immediate mitigation (does NOT fix all attack paths)
session.upload_progress.enabled = Off
session.use_only_cookies = On
هذا البحث مخصص لاختبارات الأمان المصرّح بها والأغراض التعليمية فقط. لا تستخدمه ضد أنظمة لا تملكها أو لا تملك تصريحًا صريحًا لاختبارها.
MIT