ثغرة CVE-2026-87902 باختصار — ما يحدث الآن
تكمن الثغرة في دالة get_page_template() التي تبني اسم ملف القالب من معامل pagename في طلب HTTP دون التحقق منه بشكل صحيح. يمكن للمهاجم غير المصادَق حقن تسلسلات اجتياز المجلدات بترميز مزدوج لإجبار ووردبريس على تضمين أي ملف PHP قابل للقراءة على الخادم خارج مجلدات القالب المسموح بها.
تُصنَّف الثغرة على أنها LFI مشروط نحو RCE: تنفيذ الكود غير مضمون على كل تثبيت، لكن الشروط المطلوبة شائعة الانتشار. رصدت Patchstack في الساعات الأولى من الاستغلال حمولات تستخدم pearcmd.php — الموجود افتراضياً في صور Docker الرسمية وبيئات cPanel مع PHP < 8.5 — لكتابة ملفات PHP قابلة للتنفيذ في /tmp أو /var/tmp. تعكس درجة CVSS 4.0 البالغة 9.2 انعدام الحاجة إلى أي مصادقة والتأثير المحتمل على سرية الخادم وسلامته وتوافره.
- تضمين أي ملف PHP قابل للقراءة خارج مجلد القالب النشط عبر اجتياز المسار في معامل
pagename - استخدام
pearcmd.phpالموجود على cPanel/PHP < 8.5 وصور Docker الرسمية لكتابة ملف PHP تحت سيطرة المهاجم على القرص - إيداع قشرة ويب في
/tmpأو/var/tmpباسم عام (wp-pear-rce-flag.php،poc87902.php) - تنفيذ أوامر shell على الخادم دون أي حساب ووردبريس أو تدخل مستخدم
- التحرك نحو مواقع أخرى مستضافة على نفس الخادم إذا سمحت الصلاحيات
- استخراج بيانات قاعدة البيانات أو مفاتيح API أو ملفات
.envالقابلة للقراءة
التحقق من تعرض مواقعك
الخطوة الأولى هي معرفة إصدار ووردبريس لكل تثبيت. مع WP-CLI، الأمر مباشر ويُنفَّذ في ثوانٍ حتى على أسطول من عشرات المواقع.
التحقق من الإصدار الحالي والتحديثات المتاحة:
`wp core version
wp core check-update`سرد جميع تثبيتات ووردبريس على خادم cPanel (عند إدارة مواقع متعددة):
find /home -name 'wp-config.php' -not -path '*/wp-content/*' 2>/dev/nullالتحقق من إصدار كل تثبيت موجود:
wp --path=/home/user/public_html core versionالتحقق مما إذا كان القالب النشط يحتوي على مجلد يبدأ بـ
page-(شرط الاستغلال):ls $(wp --path=/home/user/public_html eval 'echo get_stylesheet_directory();') | grep '^page-'التحقق من تفعيل
register_argc_argv(الشرط الثاني للاستغلال):php -r 'echo ini_get("register_argc_argv") ? "EXPOSED" : "OK";'البحث عن آثار استغلال في سجلات الوصول (النمط المميز):
grep -E 'pagename=.*\.\..*page_id=' /var/log/nginx/access.log
يكون التثبيت معرضاً لـRCE إذا استوفى الشروط الثلاثة: إصدار بين 4.7.0 و7.1.1، ووجود مجلد page-* في القالب النشط، وتفعيل register_argc_argv. القوالب الأكثر ذكراً: Twenty Twelve، وTwenty Fourteen، وNeve، وHestia، وSydney.
النسخ الاحتياطي قبل التحديث
قبل أي تحديث لنواة ووردبريس، النسخ الاحتياطي أمر لا غنى عنه. على الـVPS، أفضل طريقة هي لقطة VM — تلتقط الحالة الكاملة للقرص في ثوانٍ وتتيح التراجع الفوري. بالتوازي، يضمن تصدير قاعدة البيانات باستخدام WP-CLI استعادة دقيقة.
إنشاء لقطة VM من لوحة تحكم الـVPS (عملية فورية):
pvesh create /nodes/{node}/qemu/{vmid}/snapshot --snapname pre-wp712تصدير قاعدة بيانات ووردبريس:
wp db export backup-pre-712.sql --add-drop-tableالتحقق من سلامة النسخة الاحتياطية:
wp db checkنسخ الملف إلى مكان آمن خارج الخادم:
rsync -avz user@server:/home/user/public_html/backup-pre-712.sql ./
تطبيق تحديث ووردبريس 7.1.2 — الخطوات
على VPS بصلاحيات root، يتم تحديث ووردبريس عبر WP-CLI دون الحاجة إلى تدخل مزود الاستضافة. صدر ووردبريس 7.1.2 في 22 سبتمبر 2026، وتم رد الإصلاحات إلى جميع الفروع المدعومة حتى الإصدار 4.7.
تفعيل وضع الصيانة:
wp maintenance-mode activateتحديث نواة ووردبريس:
wp core updateالتحقق من تطبيق التحديث:
`wp core version
# يجب أن يُرجع: 7.1.2`تحديث قاعدة البيانات إذا لزم:
wp core update-dbمسح الذاكرة المؤقتة:
wp cache flushإيقاف وضع الصيانة:
wp maintenance-mode deactivateفحص السجلات واختبار صفحة رئيسية:
curl -sI https://your-site.com/ | grep HTTPتحديث جميع التثبيتات دفعة واحدة:
`for dir in $(find /home -name 'wp-config.php' -not -path '*/wp-content/*' -exec dirname {} \;); do
wp --path="$dir" core update
done`
لماذا تُبقيك الاستضافة المشتركة مكشوفاً أطول
في الاستضافة المشتركة، تتحكم شركة الاستضافة في جدول تحديثات ووردبريس. الفجوة بين نشر الرقعة وتطبيقها تعتمد على جدول المزود وحمل خوادمه واختباراته. في حالة CVE-2026-87902، بدأ الاستغلال الفعلي بعد أقل من خمس ساعات من نشر الرقعة — وهو وقت أقل بكثير من دورة تحديث معظم الاستضافات المشتركة.
مرّر الجدول أفقيًا
| المعيار | استضافة مشتركة (cPanel/Plesk) | VPS root ServOrbit |
|---|---|---|
| وقت التحديث بعد النشر | الاستضافة المشتركة: 12 إلى 72 ساعة | VPS بصلاحيات root: أقل من 3 دقائق |
| الوصول إلى سجلات الوصول | الاستضافة المشتركة: محدود أو غير متاح | VPS بصلاحيات root: وصول كامل في الوقت الفعلي |
| التحكم في `register_argc_argv` | الاستضافة المشتركة: يضبطه المزود، غالباً مفعَّل | VPS بصلاحيات root: يمكن تعطيله في 30 ثانية |
| عزل المواقع | الاستضافة المشتركة: نفس الخادم مع عملاء آخرين | VPS بصلاحيات root: بيئة مخصصة، لا مجاورة |
| النسخ الاحتياطي قبل التحديث | الاستضافة المشتركة: غير متاح أو مدفوع | VPS بصلاحيات root: لقطة فورية عبر API |
سُجِّلت أولى الطلبات الخبيثة في 22 سبتمبر 2026 عند الساعة 17:44 UTC — قبل أن تتمكن معظم الاستضافات المشتركة من تخطيط واختبار نشر التحديث.
إعداد ما بعد الترقية المقترح: (1) تعطيل XML-RPC إن لم تستخدم تطبيقات الجوال أو Jetpack. (2) تفعيل التحديثات التلقائية للنواة: define('WP_AUTO_UPDATE_CORE', 'minor'); في wp-config.php. (3) تعطيل register_argc_argv في php.ini لإزالة ناقل RCE عبر pearcmd.php. (4) إضافة قاعدة WAF لحجب أنماط الاجتياز في معامل pagename.
استكشاف الأخطاء — مشكلات شائعة بعد الترقية
تحديثات نواة ووردبريس عادةً سلسة، لكن بعض البيئات تُظهر مشكلات متوقعة. إليك أكثرها شيوعاً وحلولها.
- خطأ اتصال قاعدة البيانات: نفّذ
wp core update-db— بعض ترحيلات المخطط لا تُطبَّق تلقائياً. - شاشة بيضاء أو خطأ 500: تحقق من سجلات PHP وعطّل جميع الإضافات مؤقتاً:
wp plugin deactivate --all. - رفض الصلاحيات على
wp-content/: نفّذ WP-CLI بمستخدم مالك الملفات:su - cpanelusername -c 'wp core update'. - رسالة 'Filesystem not available': أضف
define('FS_METHOD', 'direct');فيwp-config.php. - قالب فرعي يتعطل: تحقق من توافق القالب الأصلي مع 7.1.2.
- ذاكرة مؤقتة قديمة (Redis/Memcached): بعد
wp cache flush، أعد تشغيل الخدمة:systemctl restart redis.
من ووردبريس إلى بنية أكثر متانة
تجسّد CVE-2026-87902 حقيقة هيكلية: نواة ووردبريس سطح هجوم واسع، وكل ثغرة حرجة تطرح من جديد مسألة التحكم في بيئة التشغيل. الـVPS المخصص لا يُلغي الثغرات، لكنه يقلص نافذة التعرض إلى دقائق، ويتيح تدقيق البيئة كاملاً، والاستجابة الدقيقة لكل ناقل هجوم موثق.
للوكالات والمطورين الذين يديرون أسطولاً من مواقع ووردبريس، توحيد البيئة على VPS مع WP-CLI وسكريبتات تحديث آلية يحوّل حالة الطوارئ الأمنية إلى إجراء روتيني. التكلفة التشغيلية للـVPS تُعوَّض بإزالة تأخير المزود — الذي، كما تُظهر هذه الثغرة، قد يكون حاسماً.