Tarmoqli dispetcherda ildizga kirishga ruxsat beruvchi zaifliklar

Microsoft’ning xavfsizlik bo‘yicha tadqiqotchilari Nimbuspwn kod nomi bilan atalgan tarmoq dispetcherlik xizmatida ikkita zaiflikni (CVE-2022-29799, CVE-2022-29800) aniqladilar, ular imtiyozsiz foydalanuvchiga ildiz huquqlariga ega bo‘lgan o‘zboshimchalik bilan buyruqlarni bajarishga imkon beradi. Muammo tarmoqli dispetcher 2.2.ni chiqarishda hal qilindi. Distribyutsiyalar (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux) bo'yicha yangilanishlarni nashr etish haqida hozircha ma'lumot yo'q.

Networkd-dispetcher ko'plab Linux distribyutorlarida, jumladan Ubuntuda qo'llaniladi, ular tarmoq parametrlarini sozlash uchun systemd-networkd fon jarayonidan foydalanadi va NetworkManager-dispetcherga o'xshash funktsiyalarni bajaradi, ya'ni. tarmoq ulanishi holati o'zgarganda skriptlarni ishga tushirish bilan shug'ullanadi, masalan, asosiy tarmoq ulanishi o'rnatilgandan keyin VPNni ishga tushirish uchun ishlatiladi.

Tarmoqli dispetcher bilan bog'liq fon jarayoni ildiz sifatida ishlaydi va D-Bus orqali voqea signallarini oladi. Tarmoq ulanishlari holatining o'zgarishi bilan bog'liq hodisalar haqida ma'lumot systemd-networkd xizmati tomonidan yuboriladi. Muammo shundaki, imtiyozga ega bo'lmagan foydalanuvchilar mavjud bo'lmagan holat hodisasini yaratishi va o'z skriptini ildiz sifatida bajarish uchun ishga tushirishi mumkin.

Systemd-networkd faqat /etc/networkd-dispatcher katalogida joylashgan tizim ishlov beruvchisi skriptlarini ishga tushirish uchun mo'ljallangan va foydalanuvchi almashtirish uchun mavjud emas, lekin fayl yo'lini qayta ishlash kodida zaiflik (CVE-2022-29799) tufayli yuzaga kelgan. chegaradan tashqari asosiy katalog va ixtiyoriy skriptlarni ishga tushirish imkoniyati. Xususan, skriptga fayl yo'lini shakllantirishda D-Bus orqali uzatiladigan OperationalState va AdministrativeState qiymatlari ishlatilgan, ularda maxsus belgilar o'chirilmagan. Buzg'unchi o'z holatini yaratishi mumkin, uning nomi "../" belgilarini o'z ichiga olgan va tarmoq dispetcherlik qo'ng'iroqlarini boshqa katalogga yo'naltirishi mumkin.

Ikkinchi zaiflik (CVE-2022-29800) poyga holati bilan bog'liq - skript parametrlarini tekshirish (rootga tegishli) va uni ishga tushirish o'rtasida faylni almashtirish va tekshirishni chetlab o'tish uchun qisqa vaqt bor edi. skript ildiz foydalanuvchisiga tegishli. Bundan tashqari, networkd-dispetcher ramziy havolalarni, shu jumladan subprocess.Popen qo'ng'irog'i orqali skriptlarni ishga tushirishda tekshirmadi, bu hujumni tashkil qilishni sezilarli darajada soddalashtirdi.

Operatsion texnikasi:

  • “/tmp/nimbuspwn” katalogi va “/tmp/nimbuspwn/poc.d” ramziy havolasi “/sbin” katalogiga ishora qilib yaratilgan bo‘lib, u ildizga tegishli bajariladigan fayllarni tekshirish uchun ishlatiladi.
  • “/sbin” dan bajariladigan fayllar uchun “/tmp/nimbuspwn” katalogida bir xil nomdagi fayllar yaratiladi, masalan, “/sbin/vgs” fayli uchun “/tmp/nimbuspwn/vgs” bajariladigan fayl. tajovuzkor ishlatmoqchi bo'lgan kod joylashtirilgan, imtiyozsiz foydalanuvchiga tegishli yaratilgan.
  • OperationalState-da "../../../tmp/nimbuspwn/poc" qiymatini ko'rsatuvchi signal D-Bus orqali tarmoqli dispetcherlik jarayoniga yuboriladi. "org.freedesktop.network1" nom maydoniga signal yuborish uchun uning ishlov beruvchilarini systemd-networkd ga ulash imkoniyati, masalan, gpgv yoki epmd bilan manipulyatsiyalar orqali ishlatilgan yoki siz systemd-networkd-dan foydalanishingiz mumkin. sukut bo'yicha ishlamaydi (masalan, Linux Mint-da).
  • Signalni qabul qilgandan so'ng, Networkd-dispetcher ildiz foydalanuvchiga tegishli va “/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d” katalogida mavjud bo'lgan bajariladigan fayllar ro'yxatini tuzadi. bu aslida "/ sbin" ga bog'lanadi.
  • Fayllar ro'yxati olingan, lekin skript hali ishga tushirilmagan paytda, ramziy havola "/tmp/nimbuspwn/poc.d" dan "/tmp/nimbuspwn" ga yo'naltiriladi va tarmoq dispetcheri ildiz huquqlariga ega tajovuzkor tomonidan joylashtirilgan skript.

Tarmoqli dispetcherda ildizga kirishga ruxsat beruvchi zaifliklar


Manba: opennet.ru

a Izoh qo'shish