
إعداد وإعادة استغلال CVE-2022-42889 Text4Shell.
للعثور على الإعداد الكامل للاستغلال وتقرير إعادة الإنشاء، يرجى العثور على ملف تقرير استغلال الثغرة CVE-2022-42889-Project Vulnerability Exploitation Report. الجهاز الظاهري (VM) الذي تم استخدامه لبناء وتشغيل الاستغلال غير مضمن في هذا المستودع.
الإعداد وإعادة إنشاء الاستغلال لـ CVE-2022-42889 Text4Shell.
كانت CVE-2022-42889، المعروفة أيضًا باسم "Text4Shell"، ثغرة خطيرة في مكتبة Apache Commons Text، وهي مكتبة تُستخدم بشكل متكرر في تطبيقات Java لمعالجة النصوص وتقديم إضافات لمعالجة النصوص القياسية في Java Development Kit (JDK). تم الإبلاغ عن أن الإصدارات من 1.5 إلى 1.9 من مكتبة Apache Common Text، والتي تعود إلى عام 2018، متأثرة. تنبع الثغرة من معالجة غير آمنة للمدخلات داخل فئة StringSubstitutor، مما يمكّن المهاجمين من استغلال ميزات interpolator للسلسلة في المكتبة. يمكن أن يؤدي ذلك إلى تنفيذ تعليمات برمجية عن بُعد (RCE) عند معالجة مدخلات تم إنشاؤها بشكل ضار، مما يشكل مخاطر كبيرة على التطبيقات التي تعتمد على هذه المكتبة. وبالتالي، اعتُبرت CVE-2022-42889 ثغرة خطيرة وتم منحها درجة أساسية 9.8 من CVSS 3.x، نظرًا للتأثير الشديد الذي يمكن أن تحدثه على الأنظمة المتأثرة، بما في ذلك اختراق النظام بالكامل.
تمت مقارنة هذه الثغرة بالثغرات الشهيرة Log4Shell (CVE-2021-44228) وSpring4Shell (CVE-2022-22965) نظرًا لإمكانية استغلالها في التطبيقات القائمة على Java. على عكس Log4Shell وSpring4Shell، اللتين كانتا ضعيفتين حتى في أبسط حالات الاستخدام، لن يتأثر جميع مستخدمي مكتبة Apache Common Text، حيث يجب استخدام المكتبة بطريقة معينة لكشف سطح الهجوم وجعل الثغرة قابلة للاستغلال.
يستخدم العرض التوضيحي للاستغلال إثبات المفهوم من GitHub لـ cyberhack255 الذي يوفر جميع البرامج النصية والأدوات اللازمة لتشغيل الاستغلال. فيما يلي وصف موجز لكيفية سير عملية الاستغلال:
يستخدم العرض التوضيحي ملف Dockerfile يقوم بإعداد حاوية docker لتشغيل تطبيق Java معبأ كملف JAR كبير (text4shell-poc.jar). يستخدم الصورة الرسمية لـ OpenJDK 8 المستندة إلى Alpine Linux، والتي توفر بيئة خفيفة الوزن وصغيرة الحجم. يقوم الملف بتثبيت bash لتمكين البرمجة النصية باستخدام bash أثناء العرض التوضيحي. يتم فتح المنفذ 8080 للسماح بالوصول الخارجي إلى الحاوية أثناء تشغيل الاستغلال.
سيركز إثبات المفهوم هذا على صياغة حمولة ضارة تستغل آلية استبدال السلسلة في مكتبة Apache Commons Text. ستستهدف الحمولة مفتاح البحث (lookup key) script عن طريق استدعاء طريقة StringSubstitutor.createInterpolator(). في هذا العرض التوضيحي، ستقوم الحمولة بإنشاء ملف جديد داخل حاوية docker عن بعد.