
# إضافة 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 / WordPress بحيث يُفترض أن يتحكم رمز لمرة واحدة يُرسَل عبر 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 صغير: لافتة ملوّنة، ثم الخطوات الثلاث أعلاه. يتواصل فقط مع العنوان الذي تمرّره على سطر الأوامر.
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