
تحليل فني وإثبات المفهوم لـ CVE-2024-48990، وهي ثغرة تصعيد امتيازات في needrestart تسمح للمهاجمين المحليين بتنفيذ تعليمات برمجية عشوائية كجذر عبر التلاعب بـ PYTHONPATH.
لتحديد ما إذا كانت عملية بايثون (عملية تشغّل مفسّر بايثون) بحاجة إلى إعادة التشغيل، يستخرج needrestart متغيّر البيئة PYTHONPATH من ملف /proc/pid/environ الخاص بهذه العملية (في السطر 193)، ويعيّن متغيّر البيئة هذا إذا كان موجوداً (في السطر 196)، وينفّذ بايثون ("$ptable->{exec}" في السطر 203) مع وسيط "-" لقراءة سكربت قصير مكتوب بشكل ثابت من الإدخال القياسي stdin (في السطر 204):
لسوء الحظ، إذا كانت عملية بايثون تابعة لمهاجم محلّي، فإن needrestart ينفّذ بايثون (في السطر 203) مع متغيّر بيئة PYTHONPATH يتحكّم فيه المهاجم، مما يسمح للمهاجم بتنفيذ كود عشوائي بصلاحيات الجذر (على الرغم من أن سكربت بايثون المكتوب بشكل ثابت في needrestart عند السطر 204 ليس خاضعاً لسيطرة المهاجم إطلاقاً). هذا هو CVE-2024-48990.