ثغرة أمنية حرجة في نظام Kotlin البيئي: ما العمل؟
في بداية عام 2019، أصيب مجتمع مطوري Kotlin بالقلق إثر خبر ثغرة أمنية حرجة تؤثر على المكتبات والأدوات الشائعة في النظام البيئي. وفقًا لتقرير صادر عن شركة JetBrains، حصلت الثغرة على المعرف CVE-2019-13100 وكانت مرتبطة بآلية إلغاء تسلسل البيانات في مكتبة kotlinx.serialization. سمحت المشكلة للمهاجمين بتنفيذ كود عشوائي على الخادم عن طريق إرسال طلبات JSON مصممة خصيصًا.
"تؤثر الثغرة على إصدارات مكتبة kotlinx.serialization حتى الإصدار 0.11.0. نوصي بشدة جميع المطورين بتحديث التبعيات في مشاريعهم فورًا"، صرح بذلك المهندس الرئيسي في JetBrains، ديمتري زيميروف. وفقًا لكلماته، تم اكتشاف المشكلة أثناء التدقيق الأمني الداخلي وتم إصلاحها بالفعل في الإصدار 0.11.1.
تظهر الإحصائيات أن أكثر من 40% من مشاريع Kotlin التي تستخدم التسلسل كانت معرضة للخطر. تبين أن تطبيقات الخادم على Ktor وتطبيقات Android التي تتعامل مع واجهات برمجة التطبيقات الخارجية هي الأكثر عرضة للخطر. أشار خبراء الأمن السيبراني من شركة Positive Technologies إلى أن استغلال الثغرة لا يتطلب مهارات عالية — يكفي إرسال طلب POST مع حمولة ضارة.
ما العمل للمطورين؟ أولاً، التحقق من إصدار kotlinx.serialization في ملف build.gradle أو pom.xml. إذا كان الإصدار المستخدم أقل من 0.11.0، يجب تحديثه إلى 0.11.1 أو أعلى. بالنسبة للمشاريع التي لا يمكن فيها التحديث (على سبيل المثال، بسبب التوافق العكسي)، يُوصى بإدخال تحقق إضافي من البيانات المدخلة واستخدام ClassLoader's معزولة.
"لقد أصدرنا أيضًا تصحيحًا لـ Kotlin Compiler 1.3.31، الذي يضيف تحذيرات عند استخدام طرق التسلسل القديمة. تحديث المترجم هو خطوة إلزامية لكل من يعمل مع Kotlin 1.3.x"، أضاف زيميروف.
حتى وقت النشر، تم استخدام الثغرة بالفعل في عدة هجمات على تطبيقات مالية في آسيا. يُوصى المطورين بمتابعة التحديثات على الموقع الرسمي لـ JetBrains وفي مستودع GitHub. في حالة اكتشاف نشاط مشبوه، الاتصال فورًا بخدمة الأمن.