حذر باحثون أمنيون من إمكانية استغلال ثغرة أمنية خطيرة في لغة برمجة PHP لتنفيذ تعليمات برمجية ضارة على أجهزة Home windows، وحثوا المتضررين على اتخاذ الإجراءات اللازمة قبل بدء عطلة نهاية الأسبوع.
وفي غضون 24 ساعة من نشر الثغرة الأمنية والتصحيح المصاحب لها، اكتشف باحثون من منظمة Shadowserver الأمنية غير الربحية ذكرت تم تصميم عمليات فحص الإنترنت لتحديد الخوادم المعرضة للهجمات. هذا – إلى جانب (1) سهولة الاستغلال، (2) توفر كود هجوم إثبات المفهوم، (3) خطورة تنفيذ التعليمات البرمجية عن بعد على الأجهزة المعرضة للخطر، و(4) الاستخدام على نطاق واسع. XAMPP كون النظام الأساسي عرضة للخطر بشكل افتراضي – دفع ممارسي الأمن إلى حث المسؤولين على التحقق لمعرفة ما إذا كانت خوادم PHP الخاصة بهم قد تأثرت قبل بدء عطلة نهاية الأسبوع.
عندما لا يكون “الأفضل مناسبًا”.
“ثغرة سيئة مع استغلال بسيط للغاية – مثالية بعد ظهر يوم الجمعة،” باحثون من شركة الأمن WatchTowr كتب.
CVE-2024-4577، أثناء تعقب الثغرة الأمنية، تنبع من أخطاء في الطريقة التي تقوم بها PHP بتحويل أحرف Unicode إلى ASCII. أ ميزة يتيح نظام التشغيل Home windows المعروف باسم Greatest Match للمهاجمين استخدام تقنية تُعرف باسم حقن الحجة لتمرير المدخلات المقدمة من المستخدم إلى الأوامر التي ينفذها أحد التطبيقات، في هذه الحالة، PHP. تسمح عمليات الاستغلال للمهاجمين بالتجاوز CVE-2012-1823، تم تصحيح ثغرة أمنية خطيرة في تنفيذ التعليمات البرمجية في PHP في عام 2012.
“أثناء تنفيذ PHP، لم يلاحظ الفريق ميزة Greatest-Match لتحويل التشفير داخل نظام التشغيل Home windows،” هذا ما قاله باحثون من Devcore، شركة الأمان التي اكتشفت CVE-2024-4577، كتب. “تسمح هذه الرقابة للمهاجمين غير المصادقين بتجاوز الحماية السابقة لـ CVE-2012-1823 من خلال تسلسلات أحرف محددة. يمكن تنفيذ التعليمات البرمجية التعسفية على خوادم PHP البعيدة من خلال هجوم حقن الوسيطات.
يؤثر CVE-2024-4577 على PHP فقط عند تشغيله في الوضع المعروف باسم CGI، حيث يقوم خادم الويب بتحليل طلبات HTTP وتمريرها إلى برنامج PHP النصي للمعالجة. حتى عندما لا يتم ضبط PHP على وضع CGI، قد تظل الثغرة الأمنية قابلة للاستغلال عندما تكون ملفات PHP التنفيذية مثل php.exe وphp-cgi.exe موجودة في أدلة يمكن الوصول إليها بواسطة خادم الويب. يتم تعيين هذا التكوين افتراضيًا في XAMPP لنظام التشغيل Home windows، مما يجعل النظام الأساسي عرضة للخطر ما لم يتم تعديله.
لاحظت WatchTowr أن أحد الأمثلة يحدث عندما يتم تحليل الاستعلامات وإرسالها عبر سطر الأوامر. النتيجة: طلب غير ضار مثل http://host/cgi.php?foo=bar يمكن تحويلها إلى php.exe cgi.php foo=bar، وهو الأمر الذي سيتم تنفيذه بواسطة محرك PHP الرئيسي.
لا مفر
مثل العديد من اللغات الأخرى، تقوم PHP بتحويل أنواع معينة من مدخلات المستخدم لمنع تفسيرها على أنها أمر للتنفيذ. هذه عملية تعرف بالهروب. على سبيل المثال، في HTML، غالبًا ما يتم تخطي الأحرف < و > عن طريق تحويلها إلى مكافئات القيمة السداسية الموحدة الخاصة بها < و > لمنع تفسيرها على أنها علامات HTML بواسطة المتصفح.
يوضح باحثو WatchTowr كيف يفشل Greatest Match في الهروب من الأحرف مثل الواصلة الناعمة (بقيمة unicode 0xAD) ويقوم بدلاً من ذلك بتحويلها إلى واصلة عادية غير قابلة للإلغاء (0x2D)، وهي حرف يلعب دورًا أساسيًا في العديد من تراكيب التعليمات البرمجية.
ومضى الباحثون في التوضيح:
اتضح أنه، كجزء من معالجة يونيكود، ستطبق PHP ما يعرف بتعيين “الأفضل ملاءمة”، ومن المفيد أن تفترض أنه عندما يقوم المستخدم بإدخال واصلة ناعمة، فإنه في الواقع ينوي كتابة حقيقي الواصلة، وتفسيرها على هذا النحو. هنا تكمن ثغرتنا – إذا زودنا معالج CGI بواصلة ناعمة (0xAD)، فلن يشعر معالج CGI بالحاجة إلى الهروب منه، وسيمرره إلى PHP. PHP، ومع ذلك، سوف يفسرها كما لو كانت ملف حقيقي واصلة، والتي تسمح للمهاجم بتسلل وسيطات سطر الأوامر الإضافية، والتي تبدأ بالواصلات، إلى عملية PHP.
يشبه هذا بشكل ملحوظ خطأ PHP أقدم (عندما يكون في وضع CGI)، CVE-2012-1823، ولذا يمكننا استعارة بعض تقنيات الاستغلال التي تم تطويرها لهذا الخطأ الأقدم وتكييفها لتعمل مع خطأنا الجديد. مفيدة الكتابة تنصح أنه لترجمة إدخالنا إلى RCE، يجب أن نهدف إلى إدخال الحجج التالية:
سيؤدي هذا إلى قبول الإدخال من نص طلب HTTP الخاص بنا، ومعالجته باستخدام PHP. واضح بما فيه الكفاية – دعونا نجرب نسخة من هذا مجهزة بـ 0xAD “الواصلة الناعمة” الخاصة بنا بدلاً من الواصلة المعتادة. ربما يكفي التسلل عبر الهروب؟
يا فرحة – لقد تمت مكافأتنا بـ phpinfo الصفحة، تبين لنا أننا حققنا بالفعل RCE.
تم اكتشاف الثغرة الأمنية بواسطة باحث Devcore Orange Tsai، الذي قال: “الخطأ بسيط للغاية، ولكن هذا أيضًا ما يجعله مثيرًا للاهتمام.”
قالت كتابة Devcore أن الباحثين أكدوا أن XAMPP معرض للخطر عندما يتم تكوين Home windows لاستخدام اللغات الصينية التقليدية أو الصينية المبسطة أو اليابانية. في Home windows، اللغة هي مجموعة من معلومات تفضيلات المستخدم المتعلقة بلغة المستخدم و/أو البيئة و/أو الأعراف الثقافية. لم يختبر الباحثون مواقع أخرى وحثوا الأشخاص الذين يستخدمونها على إجراء تقييم شامل للأصول لاختبار سيناريوهات الاستخدام الخاصة بهم.
يؤثر CVE-2024-4577 على كافة إصدارات PHP التي تعمل على جهاز يعمل بنظام Home windows. يتضمن ذلك فروع الإصدار 8.3 قبل 8.3.8، و8.2 قبل 8.2.20، و8.1 قبل 8.1.29.
تعتبر فروع الإصدارات 8.0 و7 و5 عرضة للخطر أيضًا، ولكن بما أنها لم تعد مدعومة، سيتعين على المسؤولين اتباع نصائح التخفيف نظرًا لعدم توفر التصحيحات. أحد الخيارات هو تطبيق ما يعرف بقواعد إعادة الكتابة مثل:
ويحذر الباحثون من أن هذه القواعد قد تم اختبارها فقط في المناطق الثلاث التي أكدوا أنها معرضة للخطر.
لم يصدر XAMPP لنظام التشغيل Home windows إصلاحًا حتى وقت نشر هذا المنشور. بالنسبة للمسؤولين الذين لا يحتاجون إلى PHP CGI، يمكنهم إيقاف تشغيله باستخدام تكوين خادم Apache HTTP التالي:
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.