شعار منصة فورجوالي الرسمي - خدمات الرسائل والواتساب والاستضافة

تحذير: ثغرة XSS مخزّنة في إضافة NEX-Forms تهدد آلاف مواقع ووردبريس

كُشف عن ثغرة Stored XSS حرجة في إضافة NEX-Forms – Ultimate Forms Plugin for WordPress تطال جميع الإصدارات حتى 9.1.11. تسمح الثغرة لمهاجمين غير مصادقين بحقن سكربتات ضارة تُنفَّذ عند زيارة الصفحات المصابة. يُنصح أصحاب المواقع والمستضيفون بالتحديث الفوري لحماية المستخدمين ولوحات الإدارة.

⚠️ عالية · CVSS 7.2CVE-2026-5063 · CWE-79

التفاصيل التقنية للثغرة

تتعلق الثغرة المُعرَّفة بـ CVE-2026-5063 بخلل في دالة submit_nex_form() داخل إضافة NEX-Forms – Ultimate Forms Plugin for WordPress، حيث لا تقوم الإضافة بتنقية (sanitization) أسماء مفاتيح معاملات الطلب من نوع POST، ولا بتهريب المخرجات (output escaping) بشكل كافٍ.

يقوم المهاجم بإرسال طلب POST يحتوي على أسماء مفاتيح مُعدَّة خصيصاً تضم كود JavaScript خبيث. يُخزَّن هذا الكود في قاعدة بيانات الموقع (ومن هنا تصنيف Stored XSS وفق CWE-79)، ثم يُنفَّذ في متصفح أي مستخدم أو مدير يفتح الصفحة المصابة لاحقاً.

  • نوع الثغرة: Stored Cross-Site Scripting
  • المتطلب: لا يحتاج المهاجم إلى أي مصادقة (Unauthenticated)
  • الإصدارات المتأثرة: جميع الإصدارات حتى 9.1.11 شاملةً
  • نقطة الحقن: أسماء معاملات POST في دالة submit_nex_form()
CVE-2026-5063 - WordPress - أمان السيرفرات
CVE-2026-5063 · WordPress · HIGH

درجة الخطورة

حصلت الثغرة على تقييم CVSS 7.2 (HIGH)، وهو تقييم مرتفع نظراً لعدة عوامل:

  • إمكانية الاستغلال دون الحاجة لأي حساب أو صلاحيات مسبقة.
  • قابلية الاستغلال عن بُعد عبر طلبات HTTP اعتيادية.
  • خطر اختطاف جلسات المسؤولين (Admin Session Hijacking) مما قد يؤدي إلى سيطرة كاملة على الموقع.
  • احتمال إعادة توجيه الزوار إلى مواقع خبيثة أو زرع backdoors عبر لوحة الإدارة.

بالنسبة لشركات الاستضافة المشتركة، قد تتحول ثغرة واحدة إلى وسيلة لاختراق عدد كبير من المواقع في الخادم نفسه إذا نجح المهاجم في الوصول إلى حساب إداري.

هل تم استغلالها؟

حتى لحظة النشر، لم تُدرج الثغرة ضمن قائمة CISA KEV للثغرات المُستغلَّة فعلياً، ولا توجد تقارير علنية تؤكد استغلالاً واسعاً في البرية. غير أن طبيعة الثغرة (XSS مخزّنة بدون مصادقة) تجعلها هدفاً جذاباً جداً للأدوات الآلية ومحركات المسح الخاصة بالمهاجمين، ومن المتوقع ظهور محاولات استغلال جماعي خلال فترة قصيرة بعد نشر التفاصيل.

الحل والإصلاح

الإجراء الأساسي هو تحديث الإضافة فوراً إلى إصدار أحدث من 9.1.11 يتضمن التصحيح الصادر في changeset 3513524.

للتحقق من وجود الإضافة والإصدار الحالي عبر WP-CLI:

wp plugin list --name=nex-forms-express-wp-form-builder

لتحديث الإضافة مباشرة عبر WP-CLI:

wp plugin update nex-forms-express-wp-form-builder

إذا تعذّر التحديث الفوري، يمكن تعطيل الإضافة كإجراء مؤقت:

wp plugin deactivate nex-forms-express-wp-form-builder

للبحث عن جميع المواقع المصابة على خادم استضافة يحوي عدة مواقع ووردبريس:

find /var/www -type d -name "nex-forms-express-wp-form-builder"

للتحقق من سجلات الوصول بحثاً عن محاولات استغلال مشبوهة على مسارات الإرسال:

grep -i "admin-ajax.php" /var/log/nginx/access.log | grep -i "nex_form"

يُوصى إضافةً إلى ذلك بتفعيل Web Application Firewall (WAF) مثل Wordfence أو قواعد ModSecurity على مستوى الخادم لرصد محاولات حقن وسوم <script> داخل أسماء المعاملات.

الخلاصة والتوصية

تمثّل ثغرة CVE-2026-5063 تهديداً حقيقياً لكل موقع ووردبريس يستخدم إضافة NEX-Forms بإصدار 9.1.11 أو أقدم، خصوصاً أنها قابلة للاستغلال دون مصادقة. ننصح مسؤولي السيرفرات ومزودي الاستضافة بما يلي:

  1. التحديث الفوري إلى الإصدار المُصحَّح، أو تعطيل الإضافة حتى يتوفر التحديث.
  2. إجراء مسح شامل لقاعدة بيانات الموقع بحثاً عن مدخلات تحتوي على كود JavaScript مشبوه.
  3. تدوير كلمات مرور حسابات الإدارة ومفاتيح wp-config.php كإجراء احترازي.
  4. تفعيل التحديثات التلقائية للإضافات الحرجة عبر WordPress أو على مستوى لوحة التحكم في الاستضافة.

📎 ملفات التحميل

📄 English Security Advisory – تقرير احترافي للمختصين

📝 Technical README (Markdown) – وثائق تقنية للفرق الداخلية

ثغرة حرجة في Paid Memberships Pro تُعطّل مدفوعات Stripe على موقعك

اكتُشفت ثغرة أمنية عالية الخطورة في إضافة Paid Memberships Pro الشهيرة لـ WordPress تطال جميع الإصدارات حتى 3.6.5، وتسمح لأي مستخدم مسجّل بصلاحية Subscriber فأعلى بإنشاء أو حذف أو إعادة بناء Webhook الخاص بـ Stripe. يؤدي استغلال الثغرة إلى تعطيل كامل لعمليات الدفع، تجديد الاشتراكات، ومعالجة المدفوعات الفاشلة. يجب على مُلّاك المواقع الترقية فوراً إلى أحدث إصدار مُصحَّح.

⚠️ عالية · CVSS 7.1CVE-2026-4100 · CWE-862

التفاصيل التقنية

تحمل الثغرة المعرّف CVE-2026-4100 وتُصنَّف ضمن فئة CWE-862: Missing Authorization، أي غياب التحقق من الصلاحيات قبل تنفيذ عمليات حساسة.

تكمن المشكلة في ثلاثة معالجات AJAX داخل الإضافة لا تقوم بفحص صلاحيات المستخدم قبل تنفيذ عملياتها، وهي:

wp_ajax_pmpro_stripe_create_webhook

wp_ajax_pmpro_stripe_delete_webhook

wp_ajax_pmpro_stripe_rebuild_webhook

بما أن هذه المعالجات مرتبطة بـ wp_ajax_ (وليس wp_ajax_nopriv_)، فإنها متاحة لأي مستخدم مسجّل الدخول. لكن بسبب عدم استخدام دوال مثل current_user_can() للتحقق من صلاحيات الإدارة، يستطيع أي عضو بمستوى Subscriber أو أعلى استدعاءها وإحداث تغييرات على تكامل Stripe Webhook للموقع.

Webhook في Stripe هو قناة الاتصال التي يُبلغ عبرها Stripe موقعك بأحداث الدفع (نجاح الدفع، فشل الدفع، إلغاء الاشتراك، التجديد). العبث بهذه القناة يعني فقدان السيرفر لأي معلومات قادمة من بوابة الدفع.

CVE-2026-4100 - WordPress - رسم توضيحي أمني ثنائي الأبعاد
CVE-2026-4100 · WordPress · 2D Explainer

درجة الخطورة

حصلت الثغرة على تقييم CVSS 7.1 ضمن نطاق HIGH. ورغم أنها تتطلب حساباً مسجّلاً، إلا أن المواقع التي تعتمد نموذج العضويات (وهو الاستخدام الأساسي للإضافة) تسمح افتراضياً بالتسجيل الذاتي للزوار بمستوى Subscriber، مما يجعل شرط المصادقة شبه معدوم عملياً.

  • السرية: تأثير محدود.
  • السلامة: تأثير مرتفع على تكامل إعدادات الدفع.
  • التوفر: تأثير مرتفع، إذ يؤدي الاستغلال إلى توقف معالجة المدفوعات كلياً.

لم تُدرج الثغرة ضمن قائمة CISA KEV حتى الآن.

هل تم استغلالها؟

وفقاً للمراجع المتاحة من Wordfence ومستودع المطوّر على GitHub، لا توجد حتى تاريخ النشر تقارير عن استغلال فعلي في البرية (in-the-wild). لكن طبيعة الثغرة تجعلها سهلة الاستغلال نسبياً عبر طلب AJAX بسيط، خاصة وأن المواقع العاملة بإضافات العضويات عادةً ما تفتح التسجيل للزوار. التأثير المباشر على الإيرادات يجعلها هدفاً جذاباً لهجمات التخريب أو الابتزاز.

الحل والإصلاح

الحل الرسمي هو الترقية إلى الإصدار المُصحَّح من Paid Memberships Pro (ما بعد 3.6.5). اتبع الخطوات التالية على سيرفر الاستضافة:

1) تحقق من إصدار الإضافة المثبّت حالياً عبر WP-CLI:

wp plugin get paid-memberships-pro --field=version

2) قم بتحديث الإضافة إلى أحدث إصدار:

wp plugin update paid-memberships-pro

3) إن كنت تدير عدة مواقع على نفس السيرفر، يمكنك تحديثها دفعة واحدة:

for site in /var/www/*/; do wp --path="$site" plugin update paid-memberships-pro --allow-root; done

4) بعد التحديث، تحقق من صحة Stripe Webhook في لوحة الإضافة عبر: Memberships → Payment Gateway & SSL، وتأكد من وجود Webhook صحيح مسجّل في لوحة Stripe.

5) كإجراء تخفيفي مؤقت إذا تعذّر التحديث الفوري، يمكنك تقييد تسجيل المستخدمين الجدد:

wp option update users_can_register 0

6) راجع سجلات السيرفر بحثاً عن طلبات مشبوهة على admin-ajax.php تستهدف المعالجات المذكورة:

grep "admin-ajax.php" /var/log/nginx/access.log | grep -E "pmpro_stripe_(create|delete|rebuild)_webhook"

7) تحقق من Webhooks المسجّلة في Stripe Dashboard وتأكد من عدم وجود إدخالات غير معروفة، واحذف أي Webhook مشبوه.

الخلاصة والتوصية

تمثّل هذه الثغرة تذكيراً بأهمية مبدأ التحقق من الصلاحيات في كل نقطة نهاية AJAX داخل إضافات WordPress، خاصة تلك التي تتعامل مع بوابات الدفع. نوصي جميع مديري المواقع الذين يستخدمون Paid Memberships Pro بتنفيذ التحديث فوراً، ومراجعة إعدادات Stripe Webhook للتأكد من سلامتها. كما نشدّد على أهمية اعتماد نظام مراقبة يومي لتحديثات الإضافات، واستخدام جدار حماية تطبيقات الويب (WAF) مثل Wordfence أو ما يوفّره مزوّد الاستضافة للحد من استغلال الثغرات قبل وصول الرقعة الرسمية.

📎 ملفات التحميل

📄 English Security Advisory – تقرير احترافي للمختصين

📝 Technical README (Markdown) – وثائق تقنية للفرق الداخلية