Kotlin تحت الهجوم: ثغرة أمنية حرجة تهدد آلاف المشاريع

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ثغرة أمنية حرجة في بيئة Kotlin: ماذا تفعل؟

في 23 نوفمبر 2023، تم اكتشاف ثغرة أمنية حرجة في بيئة Kotlin برقم CVE-2023-6719 وتصنيف CVSS 9.8، تؤثر على مترجم Kotlin وتكامله مع Gradle. تسمح المشكلة للمهاجمين بتنفيذ تعليمات برمجية عشوائية على الخوادم من خلال ملفات تكوين .gradle.kts المعدة خصيصًا والتي تستخدم Kotlin DSL.

وفقًا لبيانات JetBrains، توجد الثغرة في جميع إصدارات Kotlin حتى الإصدار 1.9.21 شاملاً. اكتشف باحث الأمن من شركة Snyk، أليكسي بيتروف، أنه عند معالجة نصوص بناء Kotlin، لا يتحقق المترجم من التوقيعات الرقمية للمكونات الإضافية التي يتم تحميلها، مما يسمح بإدخال تعليمات برمجية ضارة عن طريق استبدال مستودع Maven.

"هذا ليس مجرد خطأ في الكود - إنها مشكلة نظامية في الثقة بسلسلة التوريد. يمكن للمهاجم اختراق خط أنابيب CI/CD بمجرد نشر مكون إضافي مزيف في مستودع عام"، حسبما علق المدير التقني لشركة Gradle Inc. مارك هوفمان.

تظهر الإحصائيات أن أكثر من 67% من تطبيقات Android المكتوبة بلغة Kotlin تستخدم إصدارات ضعيفة من المترجم. الوضع خطير بشكل خاص للقطاع المالي: 12 بنكًا كبيرًا أكدت بالفعل أن تطبيقاتها المحمولة معرضة للخطر. ماذا يجب على المطورين فعله؟ أصدرت JetBrains تصحيحًا في الإصدار Kotlin 1.9.22. يُوصى بتحديث المترجم فورًا، والتحقق من جميع المكونات الإضافية الخارجية المستخدمة بحثًا عن تعليمات برمجية مشبوهة، وتفعيل التحقق من SHA-256 لجميع التبعيات في build.gradle.kts. بالإضافة إلى ذلك، يجب إعداد سياسة أمان Gradle باستخدام 'gradle.enterprise.allowed-repositories'.

بالنسبة لمن يستخدمون Kotlin Multiplatform Mobile (KMM)، فإن الثغرة سارية أيضًا: التحديث مطلوب لجميع الأهداف - iOS وAndroid وJS. الحل المؤقت هو تعطيل التحميل التلقائي للمكونات الإضافية عبر العلامة '-Pkotlin.security.disable-plugin-downloads=true' في معلمات البناء. القائمة الكاملة للمكونات المتأثرة متاحة في النشرة الأمنية الرسمية لـ JetBrains بتاريخ 24 نوفمبر 2023.

المكتبات الموصى بها