CVE-2026-78422 in zbus_polkit
الملخص
بحسب VulDB • 31/08/2026
الموضوع:: تقوم الدالة `new_for_owner()` في مكتبة `zbus_polkit` بتشفير مدخل uid الخاص بموضوع polkit لعمليات unix على أنه عدد صحيح غير موقّع بعرض 32-bit (نوع D-Bus u)، بينما تحدد واجهة org.freedesktop.PolicyKit1.Authority أن يكون العدد الصحيح موجهاً بعرض 32-bit (نوع D-Bus i). بسبب هذا التباين في الأنواع، يتجاهل polkit بصمت UID الذي قدمه المستخدم ويحدد بدلاً من ذلك مالك الموضوع بنفسه عن طريق البحث عن PID في /proc، وهو بحث عرضة بشكل جوهري لسباق وقت الفحص/وقت الاستخدام (time-of-check/time-of-use race condition).
وبالتالي، فإن التطبيق الذي يمرر قيمة UID تم الحصول عليها من مصدر موثوق — على سبيل المثال بيانات الاتصال peer credentials لـ Unix socket عبر SO_PEERCRED — للدفاع ضد إعادة استخدام PID لا يتلقى أي حماية، ولا يكون للقيمة المقدمة أي تأثير على قرار التفويض. يمكن لمهاجم محلي غير ممتياز (unprivileged) قادر على إنهاء عملية مصرح لها ثم الفوز في سباق الوقت لتعيين نفس PID لعملية خاصة به أن يتم تفويذه تحت هوية العملية المنتهية، متجاوزاً بذلك فحص تفويض polkit وتنفيذ إجراءات لا يحق للمهاجم القيام بها.
تؤثر هذه المشكلة على zbus_polkit قبل الإصدار 5.1.0.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.