
# إضافة SMS & OTP لـ WooCommerce، إشعارات الطلبات واسترداد سلة التسوق المتروكة لـ WordPress؛ تنبيه SMS <3.9.6؛ تصعيد امتيازات غير مصادق عليه (إعادة تعيين كلمة المرور القسرية)

SMS Alert ≤ 3.9.5 — تصعيد امتيازات غير مصادق عليه عبر إعادة تعيين كلمة مرور عشوائية
ثغرة حرجة في المصادقة غير السليمة في إضافة ووردبريس SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery. عند تفعيل التحقق عبر OTP لإعادة تعيين كلمات المرور، يمكن لمتصل غير مصادق عليه تعيين كلمة مرور جديدة لمستخدم لديه رقم هاتف مسجل — بما في ذلك المسؤولون — دون إثبات ملكية ذلك الهاتف.
| CVE | CVE-2026-11387 |
| CWE | CWE-287: Improper Authentication |
| CVSS 3.1 | 9.8 حرجة (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| البائع | Cozy Vision Technologies Pvt. Ltd. |
| المنتج | SMS Alert (sms-alert) |
| المتأثر | جميع الإصدارات حتى 3.9.5 |
| تم التصحيح | 3.9.6 (27 يونيو 2026) |
| CNA | Wordfence |
يحتوي هذا المستودع على إثبات مفهوم من Abraxas Labs للاستخدام في الاختبارات المصرح بها فقط — إفصاح للبائع، أو إعادة إنتاج مخبرية، أو مضيف لديك إذن كتابي لاختباره.
يربط SMS Alert تدفق استعادة كلمة المرور المفقودة في WooCommerce / ووردبريس بحيث يُفترض أن رمزًا لمرة واحدة يُرسل عبر SMS يتحكم في كلمة المرور الجديدة. في الإصدارات المتأثرة، يطبّق المعالج خلف option=smsalert-change-password-form قيمة smsalert_user_newpwd دون التحقق من أن المتصل أكمل التحقق عبر OTP أو يملك الحساب بأي شكل آخر.
يسجّل سجل CVE الرسمي أيضًا أن نفس فحص الهوية المفقود يمكن استخدامه لتغيير عنوان البريد الإلكتروني للضحية ثم الاستيلاء على الحساب عبر إعادة تعيين عادية. أي من المسارين هو استيلاء على حساب دون مصادقة.
تكون المواقع معرّضة فقط عندما يكون كلاهما صحيحًا:
billing_phone).في ظل هذه الظروف، يكون التأثير اختراقًا كاملًا للحساب المختار. الاستيلاء على حساب مسؤول يعني اختراقًا كاملًا للموقع.
| الشرط | النتيجة |
|---|---|
| وصول شبكة غير مصادق عليه | لا يتطلب بيانات اعتماد ووردبريس |
| الهدف عميل / مشترك | استيلاء على حساب ذلك العميل |
| الهدف مسؤول | تصعيد امتيازات إلى wp-admin، تثبيت إضافات/قوالب، برمجيات خبيثة دائمة |
السرية والسلامة والتوافر جميعها عالية: يمكن للمهاجم قراءة الطلبات والمعلومات الشخصية، وتغيير محتوى الموقع والمستخدمين، وقفل المالك الشرعي خارجًا.
تبدو إعادة تعيين كلمة المرور مع SMS Alert تقريبًا كما يلي:
lost-password request → OTP to the user’s phone → verified change-password POST
الخطوة المعطوبة هي الأخيرة. توجّه الإضافة بناءً على $_REQUEST['option'] == 'smsalert-change-password-form' (انظر class-wpresetpassword.php في 3.9.5) ثم تكتب كلمة المرور المُرسلة. لا تربط تلك الـ POST بجلسة OTP سابقة، أو nonce، أو فحص صلاحيات يثبت أن المتصل هو المستخدم المذكور في إعادة التعيين.
يبقى إثبات المفهوم هذا على ذلك المعالج:
POST إلى WooCommerce /my-account/lost-password/ و /wp-login.php?action=lostpassword مع تعيين wc_reset_password، بحيث يُدخل مسار إعادة التعيين الخاص بالإضافة لاسم مستخدم الضحية.POST مع option=smsalert-change-password-form بالإضافة إلى smsalert_user_newpwd / smsalert_user_cnfpwd إلى /، و /my-account/lost-password/، وإجراء lost-password في wp-login. يُعتبر ترويسة Location تحتوي على password-reset=true نجاحًا.wp-login.php بكلمة المرور الجديدة بحيث يمكن لتشغيل مخبري التمييز بين استيلاء حقيقي وفشل (خيار OTP معطّل، أو لا يوجد هاتف على المستخدم).لا يتم إرسال أي OTP. هذا هو الخلل.
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py هو عميل Python 3 صغير: لافتة ملونة، ثم الخطوات الثلاث أعلاه. يتواصل فقط مع عنوان URL الذي تمرره في سطر الأوامر.
requestsعلى macOS مع Homebrew Python (PEP 668)، استخدم venv بدلاً من pip install على مستوى النظام:
python3 -m venv .venv
.venv/bin/pip install requests
CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py <base_url> <victim_username> [new_password]
.venv/bin/python3 CVE-2026-11387-WooCommerce-SMS-OTP-Abraxas-Labs.py \
https://shop.example \
admin
وسيطة ثالثة تعيّن كلمة المرور المطلوب تطبيقها؛ الافتراضي هو abr4x4s#L4b5.
بدون وسائط، يطبع السكربت اللافتة والاستخدام ثم يخرج بالرمز 1. هذه طريقة آمنة لتأكيد أن العميل يبدأ.
يجب أن يعمل موقع ووردبريس المستهدف على SMS Alert ≤ 3.9.5، مع تفعيل OTP عند إعادة التعيين، ويجب أن يكون لدى اسم مستخدم الضحية بالفعل رقم هاتف لـ OTP. ضد موقع مُصحح 3.9.6+، أو مستخدم بدون هاتف، من المتوقع أن يفشل فحص تسجيل الدخول.
لا توجه هذا إلى أي مضيف لا تملكه أو ليس لديك إذن كتابي لاختباره.
wp-admin من النافذة الزمنية ذات الصلة على أنها غير موثوقة.class-ultimatemember.php (Trac)للاستخدام البحثي والتعليمي فقط. لا تشغّل أو تنشر أو تستخدم هذه المادة ضد أي مضيف إلا إذا كان لديك إذن كتابي صريح من كل من الطرف المستضيف لهذا المستودع ومالك الأنظمة المستهدفة.
Abraxas Labs · abraxaslabs.tech · github.com/abraxas · @abraxas_null