Snap paket idarəetmə alət dəstində yerli kök zəiflikləri

Qualys, SUID kök bayrağı ilə təchiz edilmiş və müstəqil paketlərdə çatdırılan tətbiqlər üçün icra edilə bilən mühit yaratmaq üçün snapd prosesi tərəfindən çağırılan snap-confine yardım proqramında iki boşluq (CVE-2021-44731, CVE-2021-44730) müəyyən etdi. snap formatında. Zəifliklər yerli imtiyazsız istifadəçiyə sistemdə kök imtiyazları olan kodu icra etməyə imkan verir. Problemlər Ubuntu 21.10, 20.04 və 18.04 üçün bugünkü snapd paket yeniləməsində həll olunur.

Birinci boşluq (CVE-2021-44730) sərt keçid manipulyasiyası vasitəsilə hücuma imkan verir, lakin sistemin sərt keçid mühafizəsinin söndürülməsini tələb edir (sysctl fs.protected_hardlinks-in 0-a təyin edilməsi). Problem kök kimi işləyən snap-update-ns və snap-discard-ns köməkçi proqramlarının icra olunan fayllarının yerinin düzgün yoxlanılmasından qaynaqlanır. Bu fayllara gedən yol sc_open_snapd_tool() funksiyasında öz /proc/self/exe-dən öz yoluna əsaslanaraq hesablanmışdır ki, bu da kataloqunuzda snap-məhdudlaşdırmaq üçün sərt keçid yaratmağa və snap-in öz versiyalarınızı yerləşdirməyə imkan verir. Bu qovluqdakı update-ns və snap- utilities discard-ns. Sərt keçid vasitəsilə işlədikdən sonra, kök hüquqları ilə snap-confine təcavüzkar tərəfindən əvəz edilən cari qovluqdan snap-update-ns və snap-discard-ns fayllarını işə salacaq.

İkinci boşluq yarış vəziyyəti ilə əlaqədardır və defolt Ubuntu Desktop konfiqurasiyasında istifadə edilə bilər. İstismarın Ubuntu Serverində uğurla işləməsi üçün quraşdırma zamanı “Seçilmiş Server Snaps” bölməsindən paketlərdən birini seçməlisiniz. Yarış vəziyyəti snap paketi üçün bağlama nöqtəsi ad sahəsinin hazırlanması zamanı çağırılan setup_private_mount() funksiyasında aydın görünür. Bu funksiya “/tmp/snap.$SNAP_NAME/tmp” müvəqqəti kataloqu yaradır və ya snap paketi üçün qovluqları bağlamaq üçün mövcud kataloqdan istifadə edir.

Müvəqqəti kataloqun adı proqnozlaşdırıla bilən olduğundan, təcavüzkar sahibini yoxladıqdan sonra, lakin montaj sistemi çağırışına zəng etməzdən əvvəl onun məzmununu simvolik keçidlə əvəz edə bilər. Məsələn, siz /tmp/snap.lxd/tmp qovluğunda ixtiyari kataloqa işarə edən "/tmp/snap.lxd/tmp" simvolik əlaqə yarada bilərsiniz və mount() funksiyasına edilən zəng simvolik əlaqəni izləyəcək və kataloqu qovluğa quraşdıracaq. snap ad sahəsi. Bənzər şəkildə, siz məzmununuzu /var/lib-də quraşdıra bilərsiniz və /var/lib/snapd/mount/snap.snap-store.user-fstab-ı əvəz etməklə, /etc kataloqunuzun ad məkanında quraşdırılmasını təşkil edə bilərsiniz. /etc/ld.so.preload əvəz etməklə kitabxananızın kök hüquqları ilə yüklənməsini təşkil etmək üçün snap paketi.

Qeyd olunur ki, snap-confine utiliti Go proqramında təhlükəsiz proqramlaşdırma üsullarından istifadə etməklə yazılmış, AppArmor profilləri əsasında qorunma xüsusiyyətinə malik olduğundan, seccomp mexanizmi əsasında sistem çağırışlarını süzgəcdən keçirir və istifadə edir. izolyasiya üçün montaj ad sahəsi. Bununla belə, tədqiqatçılar sistemdə kök hüquqları əldə etmək üçün işləyən bir istismar hazırlaya bildilər. İstismar kodu istifadəçilər təqdim olunan yeniləmələri quraşdırdıqdan sonra bir neçə həftə ərzində dərc olunacaq.

Mənbə: opennet.ru

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