Sistemdəki imtiyazlarınızı artırmağa imkan verən Polkit-də zəiflik

Polkit komponentində zəiflik (CVE-2021-3560) müəyyən edilmişdir ki, bu da imtiyazsız istifadəçilərə yüksək giriş hüquqları tələb edən hərəkətləri yerinə yetirmək (məsələn, USB sürücüsünün quraşdırılması) üçün paylamalarda istifadə olunur və bu, yerli istifadəçiyə sistemdə kök hüquqları əldə edin. Boşluq Polkit 0.119 versiyasında aradan qaldırılıb.

Problem 0.113 buraxılışından bəri mövcuddur, lakin RHEL, Ubuntu, Debian və SUSE daxil olmaqla bir çox distributor təsirə məruz qalmış funksionallığı köhnə Polkit buraxılışlarına əsaslanan paketlərə köçürüb (paket düzəlişləri artıq paylamalarda mövcuddur).

Problem polkit_system_bus_name_get_creds_sync() funksiyasında özünü göstərir, o, imtiyazların yüksəldilməsi tələbi ilə prosesin identifikatorlarını (uid və pid) əldə edir. Proses Polkit tərəfindən DBus-da unikal ad təyin edilməklə müəyyən edilir və bundan sonra imtiyazları yoxlamaq üçün istifadə olunur. Əgər proses polkit_system_bus_name_get_creds_sync işləyicisi başlamazdan əvvəl dbus-daemon ilə əlaqəni kəsirsə, işləyici unikal ad əvəzinə xəta kodu alır.

Zəifliyə qaytarılan xəta kodunun düzgün işlənməməsi və polkit_system_bus_name_get_creds_sync() funksiyasının prosesi uid/pid ilə uyğunlaşdıra bilməməsinə və proses üçün tələb olunan imtiyazları yoxlaya bilməməsinə baxmayaraq, FALSE əvəzinə TRUE qaytarması səbəb olur. Polkit_system_bus_name_get_creds_sync() funksiyasının çağırıldığı kod yoxlamanın uğurlu olduğunu və imtiyazların artırılması sorğusunun imtiyazsız istifadəçidən deyil, kökdən gəldiyini nəzərdə tutur ki, bu da əlavə autentifikasiya və etimadnamələrin yoxlanılması olmadan imtiyazlı hərəkətləri yerinə yetirməyə imkan verir.

Mənbə: opennet.ru

Добавить комментарий