ثغرة أمنية حرجة في مكتبة PHP شهيرة: ما يحتاج المطورون معرفته
نشر فريق من الباحثين في مجال الأمن السيبراني من شركة SonarSource تقريرًا عن ثغرة أمنية حرجة تم اكتشافها في واحدة من أكثر مكتبات PHP انتشارًا للعمل مع القوالب — Smarty. الثغرة، التي حصلت على المعرف CVE-2024-35227، تسمح للمهاجم بتنفيذ كود عشوائي عن بُعد على الخادم، مما قد يؤدي إلى اختراق كامل لتطبيق الويب.
تفاصيل الثغرة
ترتبط المشكلة بآلية معالجة إدخال المستخدم في الدالة fetch() لمكتبة Smarty. عند الإعداد غير الآمن وعدم وجود تصفية للبيانات، يمكن للمهاجم إرسال سلسلة ضارة يتم تفسيرها على أنها كود PHP. وفقًا لمقياس CVSS v3.1، حصلت الثغرة على أعلى درجة 9.8 (حرجة).
الخصائص الرئيسية للثغرة:
- ناقل الهجوم: عن بُعد (Network)
- صعوبة الاستغلال: منخفضة (Low)
- الصلاحيات المطلوبة: لا شيء (None)
- التأثير على السلامة: كامل (High)
الإصدارات المتأثرة
تؤثر الثغرة على جميع إصدارات مكتبة Smarty حتى 4.3.2 و 5.0.1. أصدر مطورو المكتبة بالفعل تصحيحات في الإصدارين 4.3.3 و 5.0.2 على التوالي. يُوصى بشدة لجميع المستخدمين بتحديث المكتبة فورًا.
كيفية التحقق من وجود الثغرة في مشروعك
للتأكد من أن مشروعك ليس معرضًا للخطر، اتبع الخطوات التالية:
- تحقق من إصدار Smarty في ملف
composer.jsonأوvendor/smarty/smarty/Smarty.class.php. - إذا كان الإصدار أقل من 4.3.3 أو 5.0.2 (حسب الفرع)، قم بالتحديث:
composer update smarty/smarty. - افحص جميع الأماكن في الكود التي تستخدم الدالة
fetch()مع بيانات المستخدم.
توصيات للحماية
بالإضافة إلى التحديث الفوري للمكتبة، ينصح الخبراء باتباع قواعد الأمان العامة:
- قم دائمًا بتصفية وهروب إدخال المستخدم.
- استخدم مبدأ الحد الأدنى من الصلاحيات لعمليات الملفات.
- قم بتحديث جميع تبعيات المشروع بانتظام.
- طبق أدوات التحليل الثابت للكود (SAST) للبحث عن الثغرات.
التاريخ والسياق
Smarty هي واحدة من أقدم مكتبات PHP للقوالب، تم إصدارها في عام 2004. تُستخدم في أنظمة إدارة المحتوى الشهيرة مثل Drupal (عبر الوحدات)، PrestaShop والعديد من المشاريع المخصصة. وفقًا لتقديرات المحللين، قد تؤثر الثغرة على أكثر من 100,000 موقع ويب حول العالم.
هذه ليست أول مشكلة أمنية خطيرة في المكتبة. في عام 2021، تم اكتشاف ثغرة CVE-2021-29454 المتعلقة بحقن القوالب. يقوم مطورو Smarty بإصدار تصحيحات بشكل سريع، لكن عدد الإصدارات القديمة في بيئات الإنتاج لا يزال مرتفعًا.