CVE-2023-47115 in label-studio
الملخص
بحسب VulDB • 24/06/2026
Label Studio هو أداة شائعة لتسمية البيانات مفتوحة المصدر. تحتوي الإصدارات السابقة للإصدار 1.9.2 على ثغرة عبر المواقع (XSS) يمكن استغلالها عندما يقوم مستخدم مُصادق عليه برفع ملف صورة مصمم خصيصاً كصورة شخصية له، والذي يتم عرضه لاحقاً كملف HTML على الموقع الإلكتروني. قد يؤدي تنفيذ شفرة JavaScript عشوائية إلى تمكين المهاجم من القيام بإجراءات ضارة ضد مستخدمي Label Studio إذا قاموا بزيارة الصورة الشخصية المصممة خصيصاً. كمثال، يمكن للمهاجم إنشاء حمولة برمجية لـ JavaScript تضيف مستخدمًا جديدًا بمسؤولية Django Super Administrator في حال زيارة مدير Django للصورة.
تُظهر الأسطر 18-49 في الملف `users/functions.py` أن فحص التحقق الوحيد هو التأكد من أن الملف صورة عن طريق استخراج أبعاده من الملف. تقدم Label Studio صور الشخصيات باستخدام عرض `serve` المدمج في Django، وهو غير آمن للاستخدام الإنتاجي وفقاً لتوثيق Django. تكمن مشكلة عرض Django `serve` في أنه يحدد نوع المحتوى (`Content-Type`) للرد بناءً على امتداد الملف الموجود في مسار عنوان URL. لذلك، يمكن للمهاجم رفع صورة تحتوي على كود HTML ضار وتسمية الملف بامتداد `.html` ليتم عرضه كصفحة HTML. يتم إجراء فحص صحة امتداد الملف الوحيد من جانب العميل (Client-side)، وهو أمر يمكن تجاوزه بسهولة.
الإصدار 1.9.2 يصلح هذه المشكلة. وتشمل استراتيجيات المعالجة الأخرى التحقق من صحة امتداد الملف على جانب الخادم وليس في شفرة جانب العميل؛ إزالة استخدام عرض Django `serve` وتنفيذ وحدة تحكم آمنة لعرض صور الشخصيات المرفوعة؛ حفظ محتوى الملفات في قاعدة البيانات بدلاً من نظام الملفات للتخفيف ضد ثغرات أخرى متعلقة بالملفات؛ وتجنب الوثوق بالإدخالات التي يتحكم فيها المستخدم.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.