Kökə giriş imkanı verən şəbəkə dispetçerində zəifliklər

Microsoft-un təhlükəsizlik tədqiqatçıları Nimbuspwn kod adlı şəbəkə dispetçer xidmətində imtiyazsız istifadəçiyə kök imtiyazları ilə ixtiyari əmrləri yerinə yetirməyə imkan verən iki boşluq (CVE-2022-29799, CVE-2022-29800) müəyyən ediblər. Problem şəbəkəli dispetçer 2.2-nin buraxılışında həll edildi. Dağıtımlar (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux) üzrə yeniləmələrin dərci barədə hələlik məlumat yoxdur.

Networkd-dispetcher şəbəkə parametrlərini konfiqurasiya etmək üçün systemd-networkd fon prosesindən istifadə edən Ubuntu da daxil olmaqla bir çox Linux paylamalarında istifadə olunur və NetworkManager-dispetçerinə bənzər funksiyaları yerinə yetirir, yəni. şəbəkə bağlantısının vəziyyəti dəyişdikdə skriptlərin işə salınması ilə məşğul olur, məsələn, əsas şəbəkə bağlantısı qurulduqdan sonra VPN-i işə salmaq üçün istifadə olunur.

Şəbəkə-dispetçerlə əlaqəli fon prosesi kök kimi işləyir və D-Bus vasitəsilə hadisə siqnallarını qəbul edir. Şəbəkə əlaqələrinin vəziyyətindəki dəyişikliklərlə bağlı hadisələr haqqında məlumat systemd-networkd xidməti tərəfindən göndərilir. Problem ondadır ki, imtiyazsız istifadəçilər mövcud olmayan vəziyyət hadisəsi yarada və skriptini kök kimi icra etmək üçün işə sala bilər.

Systemd-networkd yalnız /etc/networkd-dispatcher kataloqunda yerləşən və istifadəçinin dəyişdirilməsi üçün əlçatan olmayan sistem işləyicisi skriptlərini işə salmaq üçün nəzərdə tutulmuşdur, lakin fayl yolunun emal kodunda boşluq (CVE-2022-29799) səbəbindən hüdudlardan kənar baza kataloqu və ixtiyari skriptlərin işə salınması imkanı. Xüsusilə, skriptə fayl yolunu formalaşdırarkən, xüsusi simvolların silinmədiyi D-Bus vasitəsilə ötürülən OperationalState və AdministrativeState dəyərlərindən istifadə edilmişdir. Təcavüzkar adı “../” simvollarından ibarət olan öz vəziyyətini yarada və şəbəkəli dispetçer çağırışını başqa qovluğa yönləndirə bilər.

İkinci boşluq (CVE-2022-29800) yarış vəziyyəti ilə bağlıdır - skript parametrlərinin yoxlanılması (kökə aid) və onu işə salmaq arasında faylı dəyişdirmək və yoxlanışdan yan keçmək üçün kifayət qədər qısa bir müddət var idi. skript kök istifadəçiyə məxsusdur. Bundan əlavə, networkd-dispetcher simvolik keçidləri yoxlamadı, o cümlədən subprocess.Popen zəngi vasitəsilə skriptləri işlədərkən, bu, hücumun təşkilini xeyli sadələşdirdi.

Əməliyyat texnikası:

  • “/tmp/nimbuspwn” kataloqu və “/tmp/nimbuspwn/poc.d” simvolik keçidi “/sbin” qovluğuna işarə edərək yaradılır ki, bu da kökə məxsus icra olunan faylları yoxlamaq üçün istifadə olunur.
  • “/sbin”dən icra olunan fayllar üçün “/tmp/nimbuspwn” kataloqunda eyni adlı fayllar yaradılır, məsələn, “/sbin/vgs” faylı üçün “/tmp/nimbuspwn/vgs” icra olunan fayldır. Təcavüzkarın işə salmaq istədiyi kodun yerləşdirildiyi imtiyazsız istifadəçiyə məxsus yaradılmışdır.
  • D-Bus vasitəsilə şəbəkəli dispetçer prosesinə OperationalState-də “../../../tmp/nimbuspwn/poc” dəyərini göstərən siqnal göndərilir. “org.freedesktop.network1” ad məkanında siqnal göndərmək üçün onun işləyicilərini systemd-networkd-yə qoşmaq imkanı, məsələn, gpgv və ya epmd ilə manipulyasiyalar vasitəsilə istifadə olunub və ya systemd-networkd-dən istifadə edə bilərsiniz. defolt olaraq işləmir (məsələn, Linux Mint-də).
  • Siqnal qəbul etdikdən sonra Networkd-dispetcher kök istifadəçiyə məxsus və “/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d” kataloqunda mövcud olan icra edilə bilən faylların siyahısını yaradır. əslində "/sbin" ilə əlaqələndirir.
  • Faylların siyahısı qəbul edilərkən, lakin skript hələ işə salınmadıqda, simvolik keçid “/tmp/nimbuspwn/poc.d” dan “/tmp/nimbuspwn” ünvanına yönləndirilir və şəbəkə dispetçeri kök hüquqları ilə təcavüzkar tərəfindən yerləşdirilən skript.

Kökə giriş imkanı verən şəbəkə dispetçerində zəifliklər


Mənbə: opennet.ru

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