ثغرة Text4Shell: خطر جديد يهدد الأمان
مقدمة حول ثغرة Text4Shell
تُعرف ثغرة Text4Shell أو Act4Shell بأنها واحدة من أبرز الثغرات الأمنية التي أثارت قلقًا كبيرًا في المجتمع التقني والأمني، وربما يعود ذلك لاسمها ولتشابهها مع ثغرة Log4Shell الشهيرة، حيث إنها موجودة في أداة مفتوحة المصدر تعتمد على Java.
اكتشاف الثغرة
تم تتبع الثغرة تحت الرقم CVE-2022-42889، وقد اكتشفها الباحث ألبرتو مونيز من مختبرات أمان GitHub في مارس 2022. تتعلق الثغرة بمكتبة Apache Commons Text، وهي مكتبة مفتوحة المصدر تُستخدم في كيفية تعامل Java مع السلاسل النصية.
العبقري الحلقة 1
ما هي مكتبة Apache Commons Text؟
تحتوي هذه المكتبة على مجموعة من الأساليب والأدوات التي تقدم من خلالها قدرات معالجة النصوص، مثل حساب الفروقات بين السلاسل أو ترجمة النصوص. تعتبر هذه المكتبة جزءًا مهمًا من سلسلة إمدادات البرمجيات، مما يجعل الثغرة أكثر خطورة.
كيفية استغلال الثغرة
ملخص مونيز حول Text4Shell يقول: "قد تؤدي المفسرات الافتراضية لـ StringSubstitutor إلى تقييم غير آمن للسكريبت وتنفيذ أكواد بشكل عشوائي." بمعنى آخر، يمكن لمفسر StringSubstitutor، الذي يُمكنه تقييم واسترجاع سلسلة مدخلة، تنفيذ كود بشكل عشوائي عن بعد، مما يسمح للمهاجمين باستخدام مدخلات غير موثوقة.
الأخطار المحتملة
أشارت مؤسسة Apache إلى أن "التنسيق القياسي للتفسير هو ${prefix:name} ، حيث يُستخدم prefix لتحديد مثيل من org.apache.commons.text.lookup.StringLookup الذي يقوم بالتفسير. ومن بين المثيلات الافتراضية، توجد مفسرات قد تؤدي إلى تنفيذ أكواد عشوائية أو الاتصال بخوادم بعيدة." وبهذا، إذا قام المهاجم بتنفيذ أمر باستخدام lookup متبوعًا بسلسلة عنوان ويب، يمكنه رسم خريطة كاملة لشبكة الهدف.
تقييم خطورة الثغرة
حصلت CVE-2022-42889، أو Text4Shell، على درجة CVSS تبلغ 9.8 من 10. تؤثر هذه الثغرة على إصدارات Apache Commons Text من 1.5 إلى 1.9، ورغم توفر إثبات المفهوم للجمهور، لم تُسجل حالات استغلال معروفة بعد.
تأثير الثغرة على إصدارات JDK
أظهرت الأبحاث أيضًا أن استغلال Text4Shell ممكن على بعض إصدارات JDK (1.8.0_341، 9.0.4، 10.0.2، 11.0.16.1، 12.0.2، 13.0.2، 14.0.2) ولكن ليس جميعها. حيث فشلت الاستغلالات على الإصدارات 15.0.2، 16.0.2، 17.0.4.1، 18.0.2.1، 19.
المقارنة مع Log4Shell
على الرغم من أن سلسلة إمدادات البرمجيات تعتمد إلى حد ما على Apache Commons Text، إلا أن الخبراء الأمنيين يشيرون إلى أن استخدام مفسر StringSubstitutor ليس شائعًا مثل استخدام Log4j، مما يجعل هذه المقارنة غير دقيقة. حيث قال ديفيد ليندر، رئيس قسم المعلومات في Contrast Security: "بينما كانت هناك بعض المخاوف الأولية من الصناعة حول كونها بنفس مستوى Log4Shell، فإن الواقع هو أنها ليست منتشرة أو قابلة للاستغلال بنفس القدر."
ما الذي يجب فعله الآن؟
توصي جهود التخفيف بأن يقوم المسؤولون بترقية Apache Commons Text إلى الإصدار 1.10.0. بالإضافة إلى التحديث إلى النسخة المرقعة، نصح باول دوكلين، عالم الأبحاث الرئيسي في Sophos، المسؤولين بضرورة تنقية المدخلات لتصفية البيانات غير الموثوقة والتحقق من وجود أي تبعيات شبكية أو تطبيقية على Apache Commons Text.
خاتمة
Text4Shell هي ثاني ثغرة في Apache Commons يتم اكتشافها في عام 2022، حيث تم الإعلان سابقًا عن ثغرة Apache Commons Configuration التي تحمل الرقم CVE-2022-33980.