PHP تصلح ثغرة أمنية حرجة تؤثر على جميع الإصدارات لنظام Windows
الكشف عن ثغرة جديدة في PHP لنظام Windows تسمح بتنفيذ التعليمات البرمجية عن بُعد (remote code execution RCE)، والتي تؤثر على جميع الإصدارات منذ الإصدار 5.x، مما قد يؤثر على عدد هائل من الخوادم حول العالم.
PHP هي لغة برمجة مفتوحة المصدر تُستخدم على نطاق واسع في تطوير الويب وتُستخدم عادةً على خوادم Windows وLinux.
تم اكتشاف الثغرة الجديدة، التي تحمل الرمزCVE-2024-4577، من قبل باحث الأمن الرئيس في Devcore Orange Tsai، في 7 مايو 2024، الذي أبلغ عنها لمطوري PHP.
ومع ذلك، فإن تطبيق التحديثات الأمنية على مشروع واسع الانتشار كهذا يعد أمرًا معقدًا وقد يترك عددًا كبيرًا من الأنظمة عرضة للهجمات لفترات طويلة.
لسوء الحظ، عندما يتم الكشف عن ثغرة أمنية حرجة تؤثر على العديد من الأجهزة، تبدأ الجهات الفاعلة في مجال التهديد، والباحثون، فورًا في محاولة العثور على الأنظمة الضعيفة.
وهذا هو الحال مع الثغرة CVE-2024-4577، حيث اكتشفت مؤسسة Shadowserver بالفعل عناوين IP متعددة تقوم بمسح الخوادم الضعيفة.
تعود ثغرة CVE-2024-4577 إلى خطأ في التعامل مع تحويلات ترميز الأحرف، وتحديداً ميزة "Best-Fit" على نظام Windows عندما يتم استخدام PHP في وضع CGI mode.
يشرح استشاري من DevCore قائلاً: "أثناء تنفيذ PHP، لم يلاحظ الفريق ميزة Best-Fit لتحويل التشفير داخل نظام تشغيل Windows ".
"هذا الخطأ يسمح للمهاجمين غير المصادق عليهم بتجاوز الحماية السابقة للثغرة CVE-2012-1823 بواسطة تسلسلات أحرف معينة. يمكن تنفيذ التعليمات البرمجية العشوائية على خوادم PHP عن بُعد من خلال هجوم حقن المعاملات."
هذه الثغرة تتجاوز الحمايات التي قام فريق PHP بتنفيذها في الماضي للثغرة CVE-2012-1823، والتي تم استغلالها في هجمات البرامج الضارة بعد سنوات من إصلاحها.
يشرح المحللون أنه حتى إذا لم يكن PHP مهيأ في وضع CGI، فقد تكون الثغرة CVE-2024-4577 قابلة للاستغلال طالما أن ملفات PHP التنفيذية (مثل php.exe أو php-cgi.exe) موجودة في مجلدات يمكن الوصول إليها بواسطة خادم الويب.
نظرًا لأن هذا هو الإعداد الافتراضي على XAMPP لنظام Windows، تحذر DEVCORE من أن جميع عمليات تثبيت XAMPP على نظام Windows من المحتمل أن تكون معرضة للخطر.
وفقًا لتصريحات Devcore، تؤثر ثغرة CVE-2024-4577 على جميع إصدارات PHP لنظام Windows. إذا كنت تستخدم PHP 8.0 (انتهاء الدعم)، أو PHP 7.x (انتهاء الدعم)، أو PHP 5.x (انتهاء الدعم)، فيجب عليك إما الترقية إلى إصدار أحدث أو استخدام التدابير الوقائية الموضحة أدناه.
يجب على من يستخدمون إصدارات PHP المدعومة الترقية إلى الإصدارات التي تتضمن التصحيحات: PHP 8.3.8، PHP 8.2.20، وPHP 8.1.29.
بالنسبة للأنظمة التي لا يمكن ترقيتها فورًا ولمستخدمي الإصدارات المنتهية الدعم، يوصى بتطبيق قاعدة mod_rewrite لحظر الهجمات.
إذا كنت تستخدم XAMPP ولا تحتاج إلى ميزة PHP CGI، يمكنك إيجاد 'ScriptAlias' في ملف تكوين Apache (عادةً ما يكون في 'C:/xampp/apache/conf/extra/httpd-xampp.conf') وتعليقها.
يمكن للمسؤولين التحقق مما إذا كانوا يستخدمون PHP-CGI باستخدام دالة (phpinfo) وفحص قيمة 'Server API' في الناتج.
كما يوصي DEVCORE أيضًا بأن يفكر مسؤولو النظام في الانتقال من CGI إلى بدائل أكثر أمانًا، مثل FastCGI، PHP-FPM، وMod-PHP.
