رأس القلم
كالي
ل AMD64
ماك
ل ARM64
ماك
قريباً
النوافذ
قريباً

الفئة الشبحية تسليح CVE-2025-32432 (حقن حاوية Yii2) في نظام إدارة المحتوى الحرفية

في التسلسل الهرمي لثغرات الويب الحديثة, حقن حاوية الحقن الاعتمادية (DI) حقن الحاوية يقع في قمة السلسلة الغذائية. وهو أصعب في اكتشافه من حقن SQL، وأكثر أناقة من إفساد الذاكرة، ومدمر في تأثيره.

الكشف الأخير عن CVE-2025-32432 الاستهداف حرفة CMS-وبالتالي، فإن إطار عمل Yii2-بمثابة تذكير قاسٍ: عندما تتحكم مدخلات المستخدم في إنشاء الفئة، فإن التطبيق ينتمي إلى المهاجم. في حين أن العديد من الماسحات الضوئية الآلية صنفت هذه المشكلة في البداية على أنها "تعيين جماعي" أو "مشكلة تهيئة" منخفضة الخطورة، إلا أن نخبة مهندسي الأمن يدركون ذلك على حقيقته: تنفيذ التعليمات البرمجية عن بُعد (RCE) عبر منطق إلغاء تسلسل الكائنات غير الآمن.

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

الفئة الشبحية تسليح CVE-2025-32432 (حقن حاوية Yii2) في نظام إدارة المحتوى الحرفية

بنية الفشل: داخل محدد موقع خدمة Yii2

لفهم CVE-2025-32432، يجب عليك أولاً أن تفهم أولاً القلب المعماري لإطار عمل Yii2: yii\\\di\\Container.

تعتمد Craft CMS بشكل كبير على نمط محدد موقع الخدمة وحاوية حقن التبعية في Yii2 لإدارة تبعيات الفئات. لجعل التطوير مرنًا، تسمح الحاوية للمطورين بتهيئة الكائنات باستخدام مصفوفات التكوين. هذه الميزة هي السبب الجذري للثغرة الأمنية.

مغسلة "إنشاء كائن"

الحوض الحرج في فئة الثغرات الأمنية هذه هو Yii::createObject(). تقبل هذه الطريقة مصفوفة تهيئة حيث الفئة يملي المفتاح فئة PHP المراد إنشاؤها، وتحدد المفاتيح اللاحقة الخصائص العامة لذلك المثيل.

PHP

// الاستخدام الشرعي في كود الواجهة الخلفية لنظام إدارة المحتوى الحرفية $object = Yii::createObject([ 'class' => 'app\\\models\\User'، 'username' => 'admin'، 'role' => 'superuser' ]));

تنشأ الثغرة (CVE-2025-32432) لأن إجراءات تحكم معينة في نظام إدارة المحتوى Craft CMS (غالبًا ما تتعلق بحفظ تكوين المكوّنات الإضافية أو معالجة المسودة) تقبل مدخلات JSON الخام من طلب HTTP وتمررها بشكل أعمى إلى هذا الحوض.

الخلل في المنطق

  1. المصدر: يرسل المستخدم POST /API/API/v1/plugin-config بجسم JSON.
  2. التدفق: تقوم وحدة التحكم بفك تشفير JSON إلى مصفوفة PHP.
  3. المغسلة: يتم تمرير المصفوفة إلى Yii::createObject($requestquestData).
  4. النتيجة: يُعرّف المهاجم الفئةتحويل حقن البيانات إلى حقن الكائنات.
تسليح CVE-2025-32432 (حقن حاوية Yii2) في نظام إدارة المحتوى Craft CMS

بناء سلسلة القتل: صيد الأدوات

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

الأداة الذكية هي فئة تقوم بتنفيذ عمليات حساسة (كتابة الملفات، تنفيذ الأوامر، استعلامات قاعدة البيانات) في أساليبها السحرية (__ البناء, __التدمير, __إيقاظ, __ إلى سلسلة) أو طرق التهيئة (ابدأ). نظرًا لأن نظام إدارة المحتوى Craft CMS يتضمن النظام البيئي Yii2 بأكمله ومكتبات البائعين الضخمة (Guzzle و Monolog، وما إلى ذلك)، فإن مشهد الأدوات الذكية خصب.

الأداة الأساسية: yii\\rest\\IndexAction

في سياق CVE-2025-32432، تستفيد سلسلة الأدوات الأكثر موثوقية من yii\\rest\\IndexAction. صُممت هذه الفئة لسرد النماذج الخاصة بواجهة برمجة تطبيقات REST، ولكن لها خاصية محددة: التحقق من الوصول.

إن التحقق من الوصول تهدف الخاصية إلى الاحتفاظ بدالة قابلة للاستدعاء لفحص الأذونات. ومع ذلك، نظرًا لأننا نتحكم في قيم الخاصية عبر حاوية DI، يمكننا تحويل هذا إلى بدائية تنفيذ رد الاستدعاء.

الحمولة المسلحة (PoC)

فيما يلي حمولة إثبات المفهوم (PoC) المعاد بناؤها. تقوم بنية JSON هذه، عند معالجتها من قبل نقطة النهاية الضعيفة، بتشغيل RCE.

JSON

{"الإجراء": "حفظ التكوين"، "التكوين": {"class": "yii\\\\rest\\\\IndexAction", "id": "rce_trigger"، "وحدة التحكم": { "الفئة": "yii\\\\web\\\\Controller", "id": "dummy_controller" }، "modelClass": "yii\\\\base\\\\Model", "checkAccess": "النظام"، "تشغيل": "معرف؛ uname -a; cat /etc/passwd" } }

تدفق التنفيذ خطوة بخطوة:

  1. التثبيت: ترى حاوية DI الفئة: yii\\rest\\\IndexAction. يستخدم الانعكاس لإنشاء مثيل لهذه الفئة.
  2. عدد سكان العقار: تقوم الحاوية بالتكرار عبر المفاتيح.
    • يضبط $P4TindexAction-> التحقق من الوصول = 'النظام'.
    • يقوم بشكل متكرر بإعادة إنشاء متحكم_وهمي (مطلوب من قبل إجراء الفهرس).
  3. تشغيل المصيدة معظم مكوّنات Yii2 تستدعي بدء() أو تشغيل() خلال دورة حياتها. في مسار الاستغلال المحدد هذا، يستدعي منطق التطبيق في النهاية الإجراء.
  4. تنفيذ معاودة الاتصال: في الداخل إجراء الفهرس::تشغيل()، يتحقق الرمز إذا كان التحقق من الوصول مجموعة PHP // المنطق الداخلي ل yii\\rest\\\IndexAction إذا ($this->checkAccess) { call_user_func($this->checkAccess, $this->id, $params)؛ } }
  5. RCE: ينفذ PHP النظام('rce_trigger'، ...)? لا، يجب على المهاجم محاذاة الوسيطات. من خلال التلاعب بالخصائص الداخلية التي يتم تمريرها كوسائط إلى رد الاستدعاء، يحقق المهاجم النظام('id؛ ...').

ملاحظة: سيقوم المهاجمون المتقدمون بربط هذا مع yii\\التخزين\فيليكاش\فيليكاش أدوات لكتابة قذيفة ويب ويب PHP مستمرة (على سبيل المثال, shell.php) في جذر الويب العام (/ويب/أصول/)، متجاوزًا حدود التنفيذ المؤقت.

سبب فشل الماسحات الضوئية القديمة

يعد اكتشاف CVE-2025-32432 كابوسًا لأدوات اختبار أمان التطبيقات الديناميكية التقليدية (DAST).

  • العمى النحوي: الحمولة هي JSON صحيحة نحويًا. لا تحتوي على رموز SQL (' أو 1=1) أو ناقلات XSS (<script>). وعادةً ما تسمح عادةً WAFs التي تم تكوينها لأفضل 10 إعدادات افتراضية لـ OWASP بتمرير هذا الأمر.
  • عمى السياق: يرى الماسح الضوئي كائن JSON. لا يفهم أن المفتاح الفئة له معنى دلالي لإطار عمل PHP الخلفي. للماسح الضوئي الفئة هو مجرد حقل بيانات آخر مثل اسم المستخدم أو البريد الإلكتروني. لا يمكن الاستدلال على إنشاء الكائن الآثار الجانبية.

الكشف القائم على الذكاء الاصطناعي: ميزة Penligantent

هذا هو المكان Penligent.ai يمثل نقلة نوعية في الاختبار الأمني الهجومي. ينتقل Penligent إلى ما هو أبعد من مطابقة الأنماط لتوظيف التحليل الدلالي المدرك للسياق.

  1. البصمات الإطارية والتخطيط المنطقي

يقوم وكلاء الذكاء الاصطناعي في Penligent أولاً بتحديد كومة التكنولوجيا الأساسية (Craft CMS / Yii2). والأهم من ذلك أن الذكاء الاصطناعي "يعرف" المصارف الخطيرة الخاصة بهذا الإطار. إنه يدرك أنه في Yii2، Yii::createObject هو نقطة تحكم حاسمة، تمامًا كما هو الحال في pickle.load بالنسبة لـ Python أو unserialize بالنسبة لـ PHP العام.

  1. الفحص الذكي (الفحص الذكي (Fuzzing with Intintent)

بدلًا من رش الأحرف العشوائية بشكل أعمى، يقوم بنليجنت ببناء مجسات منطقية.

  • المسبار 1: الحقن {"فئة": "yii\\\\helpers\\\\VarDumper"}.
  • الملاحظة: هل يتغير وقت الاستجابة؟ هل تشير رسالة الخطأ إلى "VarDumper"؟
  • الاستدلال: في حالة محاولة التطبيق تحميل الفصل، يؤكد الذكاء الاصطناعي أن الفئة يتم تفسير المعلمة بواسطة حاوية DI.
  1. التحقق غير المتلف

بمجرد تأكيد ناقل الحقن، لا يحتاج Penligent إلى تنفيذ rm -rf / لإثبات الثغرة الأمنية. ويمكنه إنشاء سلسلة أدوات ذكية حميدة (على سبيل المثال، أداة تقوم ببساطة بإجراء بحث عن DNS إلى مستمع خارج النطاق) لإثبات إمكانية RCE مع يقين 100% وعدم وجود مخاطر على البنية التحتية للإنتاج. وهذا يسمح لفرق الأمن بالتحقق من صحة تصحيحات CVE-2025-32432 دون تعطيل العمليات التجارية.

نقاط الضعف عالية التأثير ذات الصلة

لفهم مشهد التهديدات بشكل كامل، يجب على مهندسي الأمن ربط CVE-2025-32432 بالسوابق التاريخية. آليات حقن الحاوية لا تنفرد بها شركة Craft CMS.

معرّف CVEالبرامج المستهدفةالآلية التقنية
CVE-2023-41892حرفة CMSRCE عبر إيمدج ماجيك منطق إنشاء الكائن في الشروط المعلمة.
CVE-2019-15488إطار عمل Yii2إلغاء التسلسل غير الآمن في yii\\db\BatchQueryReseryResult __إيقاظ الطريقة.

تشترك هذه الثغرات في حمض نووي مشترك: ثقة أنواع المدخلات.

الإصلاح والدفاع في العمق

يتطلب التخفيف من حدة CVE-2025-32432 نهجًا متعدد الطبقات يتضمن إصلاحات متعددة الطبقات تشمل إصلاحات التعليمات البرمجية وتقوية التكوين وحماية وقت التشغيل.

1. الإصلاح على مستوى الرمز (السبب الجذري)

الحل النهائي هو فرض التحقق الصارم من النوعية. يجب على المطورين عدم تمرير مصفوفات إدخال المستخدم الخام مباشرةً إلى Yii::إنشاء كائن.

  • رفض-قائمة الرفض: قم بإلغاء تعيين الفئة مفتاح من مصفوفات الإدخال قبل المعالجة.
  • قائمة السماح: إذا كان الإنشاء الديناميكي ضروريًا، تحقق من صحة الفئة المطلوبة مقابل قائمة بيضاء صارمة ومشفرة للفئات الآمنة.

PHP

// التنفيذ الآمن $config = json_decode($json, true); unset($config['class'])؛ // منع حقن الكائن $objection $object = Yii::createObject(array_Object(array_merge(['class' => SafeClass::class], $config));

2. تقوية وقت التشغيل (php.ini)

حتى لو قام أحد المهاجمين بإنشاء فئة ما، فإن عملية الإنفاذ الاحتكاري مستحيلة إذا تم تحييد وظائف النظام الأساسية. قم بتكوين php.ini لتعطيل وظائف التنفيذ الخطرة:

إيني، تومل

تعطيل_الوظائف = system, exec, shell_exec, passthru, proc_open, popen, pcntl_exec

3. الترقيع الفوري

قم بتطبيق آخر تحديث لـ Craft CMS على الفور. من المحتمل أن يقدم تصحيح البائع ل CVE-2025-32432 عامل تصفية على مستوى إطار العمل يمنع الفئة من التكريم في إجراءات وحدة تحكم محددة.

الخاتمة

CVE-2025-32432 هو تذكير صارخ بأنه كلما أصبحت أطر العمل أكثر تجريدًا وقوة، فإنها تقدم أسطح هجوم منطقية معقدة. حقن الحاويات هو "حقن SQL في عشرينيات القرن العشرين"—a flaw not in the code you write, but in how you configure the magic of the framework.

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

مراجع موثوقة

شارك المنشور:
منشورات ذات صلة
arArabic