The Nexi XPay plugin for WordPress is vulnerable to unauthorized modification of data due to missing authorization checks on the redirect function in all versions up to, and including, 8.3.0. This makes it possible for unauthenticated attackers to mark pending WooCommerce orders as paid/completed.
The Nexi XPay WordPress plugin (versions ≤8.3.0) contains a critical authorization bypass vulnerability allowing unauthenticated attackers to manipulate WooCommerce order statuses, marking pending orders as paid without legitimate payment. This affects e-commerce platforms across Saudi Arabia that rely on this payment gateway integration. While no public exploit exists, the vulnerability is trivial to exploit and poses immediate financial and operational risks to online retailers.
IMMEDIATE ACTIONS:
1. Audit all WooCommerce installations using Nexi XPay plugin versions ≤8.3.0
2. Disable the plugin immediately if no patch is available
3. Review order logs for suspicious status changes (paid orders without corresponding payment records) from the past 30-90 days
4. Contact Nexi for patch availability and timeline
COMPENSATING CONTROLS (until patch available):
1. Implement Web Application Firewall (WAF) rules to block redirect function calls without valid authentication tokens
2. Add custom code to validate payment gateway callbacks against transaction records before marking orders as paid
3. Implement order status change logging and alerting for unauthorized modifications
4. Restrict redirect endpoint access via .htaccess or nginx configuration to authenticated users only
5. Enable WooCommerce order status change notifications to detect anomalies
DETECTION RULES:
1. Monitor for POST/GET requests to /wp-admin/admin-ajax.php with Nexi XPay redirect parameters lacking valid session tokens
2. Alert on order status changes from 'pending' to 'completed'/'processing' without corresponding payment gateway webhook logs
3. Track failed payment attempts followed by successful order completion within 5 minutes
4. Monitor for bulk order status modifications from single IP addresses
PATCHING:
1. Once patch is released, immediately update to version >8.3.0
2. Test in staging environment before production deployment
3. Verify payment processing functionality post-update
الإجراءات الفورية:
1. تدقيق جميع تثبيتات WooCommerce باستخدام مكون Nexi XPay الإصدارات ≤8.3.0
2. تعطيل المكون فوراً إذا لم يكن هناك تصحيح متاح
3. مراجعة سجلات الطلبات للتغييرات المريبة في الحالة (الطلبات المدفوعة بدون سجلات دفع مقابلة) من آخر 30-90 يوماً
4. التواصل مع Nexi للحصول على توفر التصحيح والجدول الزمني
الضوابط التعويضية (حتى توفر التصحيح):
1. تنفيذ قواعد جدار حماية تطبيقات الويب (WAF) لحظر استدعاءات وظيفة إعادة التوجيه بدون رموز مصادقة صحيحة
2. إضافة كود مخصص للتحقق من رموز بوابة الدفع مقابل سجلات المعاملات قبل تحديد الطلبات كمدفوعة
3. تنفيذ تسجيل وتنبيهات تغيير حالة الطلب للتعديلات غير المصرح بها
4. تقييد وصول نقطة نهاية إعادة التوجيه عبر .htaccess أو تكوين nginx للمستخدمين المصرح لهم فقط
5. تفعيل إخطارات تغيير حالة طلب WooCommerce للكشف عن الشذوذ
قواعد الكشف:
1. مراقبة طلبات POST/GET إلى /wp-admin/admin-ajax.php مع معاملات إعادة توجيه Nexi XPay التي تفتقد رموز جلسة صحيحة
2. تنبيه تغييرات حالة الطلب من 'معلق' إلى 'مكتمل'/'معالجة' بدون سجلات webhook بوابة دفع مقابلة
3. تتبع محاولات الدفع الفاشلة متبوعة بإكمال الطلب الناجح في غضون 5 دقائق
4. مراقبة تعديلات حالة الطلب الجماعية من عناوين IP الفردية
التصحيح:
1. بمجرد إصدار التصحيح، قم بالتحديث فوراً إلى الإصدار >8.3.0
2. اختبر في بيئة التدريج قبل نشر الإنتاج
3. تحقق من وظيفة معالجة الدفع بعد التحديث