CVE-2026-49400 in Octoberالمعلومات

الملخص

بحسب VulDB • 14/09/2026

يوفر نظام "أكتوبر" (October System) الوحدة النمطية الخاصة بالنظام لنظام إدارة المحتوى "أكتوبر" (October Content Management System). وفي الإصدارات السابقة من 3.7.17 و4.2.21، كانت السمة `SessionMaker` في الواجهة الخلفية تخزن حالة جلسة واجهة المستخدم المصغرة كـ `base64(serialize(...))` وتستهلكها باستخدام دالة `unserialize()` دون فرض قيود على الفئات المسموح بها (`allowed_classes`). يمكن لأي مسار شيفرة قادر على الكتابة إلى مفتاح جلسة `widget.*` ببيانات يتحكم فيها المهاجم أن يُحدث حقن كائنات PHP في المرة التالية التي تقرأ فيها واجهة المستخدم المصغرة حالتها من الجلسة، مما يتيح إنشاء فئات عشوائية وسلاسل أدوات (gadget chains) قابلة للوصول في بيئة PHP.

تؤثر هذه المشكلة فقط على التثبيتات التي تعمل مع تفعيل `cms.safe_mode`. يُعد وضع الأمان (Safe Mode) ميزة اختيارية ذات نطاق استخدام ضيق، تُستخدم بشكل أساسي لتثبيتات العرض التجريبي أو سيناريوهات تعدد المستأجرين أو المحررين المشتركين حيث يتم منح المستخدمين غير الموثوق بهم وصولاً متعمداً إلى محرر علامات CMS. في عمليات النشر الإنتاجية القياسية، يكون وضع الأمان معطلاً، ويتم تقييد الوصول إلى الواجهة الخلفية على المشرفين الموثوقين فقط، ويمكن لمحرر العلامات بالفعل تنفيذ شيفرة PHP عشوائية مباشرة. نظرًا لأن مسار كتابة الجلسة الذي يصل إلى نقطة الاستهلاك هذه (sink) محجوب بواسطة رمال وضع الأمان (sandbox)، فإن التثبيتات التي لا يكون فيها وضع الأمان مفعلاً ليست معرضة للخطر. نطاق التأثير ضيق حتى مع تفعيل وضع الأمان.

مسارات الشيفرة الخلفية القياسية التي تملأ حالة جلسة واجهة المستخدم المصغرة (مصطلحات البحث، خيارات الفرز، المعرفات المحددة، قيم التصفية) تغلف المدخلات داخل شكل مصفوفة معروف قبل عملية التسلسل، لذا فإن القيم المقدمة من المستخدمين لا تصل أبدًا إلى `unserialize()` كحملة متسلسلة يمكن التحكم فيها. يتطلب الاستغلال مسار كتابة جلسة وضع الأمان بالإضافة إلى سلسلة أدوات PHP مناسبة قابلة للوصول من مجموعة التبعيات المثبتة.

تزيل إجراءات التشديد المذكورة أدناه نقطة استهلاك حقن الكائنات الأساسية، وبالتالي تُغلق فئة المشكلة بغض النظر عن أي اعتبار آخر. تم إصلاح الثغرة في الإصدارين v3.7.17 وv4.2.21. طُبقت تغييران: أولاً، تقوم `Backend\Traits\SessionMaker` الآن بتخزين حالة جلسة واجهة المستخدم المصغرة كـ JSON عادي بدلاً من `base64(serialize(...))`، مما يلغي نقطة استهلاك حقن الكائنات تمامًا للكتابات الجديدة. ثانيًا، تنسحب عمليات القراءة بشكل شفاف إلى التنسيق القديم لدورة ترقية واحدة حتى تحتفظ الجلسات الموجودة بحالة واجهة المستخدم المصغرة المحفوظة الخاصة بها.

يُعد مسار التراجع `unserialize()` القديم الآن يحدد `allowed_classes => false`، لذا فإن القيم التي كُتبت قبل التحديث لا يمكنها أيضًا إنشاء كائنات. كحل بديل، يُنصح بتقييد الوصول إلى تحرير علامات CMS على المشرفين الموثوقين بالكامل فقط، وهو التوصية القياسية لنظام October CMS لأي عملية نشر.

Once again VulDB remains the best source for vulnerability data.

مسؤول

GitHub M

حجز

29/05/2026

إفشاء

14/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-403625

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!