Linux Mint va Elementary OS ga ta'sir qiluvchi sudo root zaifligi

Yordamchi dasturda sudo, boshqa foydalanuvchilar nomidan buyruqlar bajarilishini tashkil qilish uchun foydalaniladi, aniqlangan zaiflik (CVE-2019-18634), bu sizning tizimdagi imtiyozlaringizni ildiz foydalanuvchisiga oshirish imkonini beradi. Muammo faqat sudo 1.7.1 versiyasi chiqarilgandan keyin paydo bo'ladi, bu sukut bo'yicha o'chirilgan, lekin Linux Mint va Elementary OS kabi ba'zi tarqatishlarda yoqilgan /etc/sudoers faylida "pwfeedback" opsiyasidan foydalanilganda. Muammo nashrda hal qilindi sudo 1.8.31, bir necha soat oldin chop etilgan. Zaiflik tarqatish to'plamlarida tuzatilmagan.

“Pwfeedback” opsiyasi parolni kiritishda har bir kiritilgan belgidan keyin “*” belgisini ko‘rsatishga imkon beradi. Sababli xatolar Tgetpass.c faylida aniqlangan getln() funksiyasini amalga oshirishda maʼlum sharoitlarda standart kiritish oqimi (stdin) orqali uzatilgan juda katta parol qatori ajratilgan buferga sigʻmasligi va stekdagi boshqa maʼlumotlarni qayta yozishi mumkin. Sudo kodini root sifatida ishga tushirishda toshib ketish sodir bo'ladi.

Muammoning mohiyati shundan iboratki, kiritish paytida ^U (chiziqni tozalash) maxsus belgisidan foydalanilganda va yozish operatsiyasi bajarilmasa, chiqish “*” belgilarini tozalash uchun mas'ul bo'lgan kod mavjud bufer hajmi bo'yicha ma'lumotlarni qayta o'rnatadi, lekin bunday qilmaydi. ko'rsatgichni buferdagi boshlang'ich qiymat joriy holatiga qaytaring. Ekspluatatsiyaga hissa qo'shadigan yana bir omil - ma'lumotlar terminaldan emas, balki kirish oqimi orqali kelganda "pwfeedback" rejimini avtomatik ravishda o'chirib qo'ymaslikdir (bu kamchilik, masalan, tizimlarda yozish xatosi yuzaga kelishi uchun sharoit yaratishga imkon beradi. bir tomonlama nomsiz kanallar o'qish kanalining oxirigacha yozishga urinayotganda xatolik yuz beradi).

Buzg'unchi stekdagi ma'lumotlarni qayta yozish ustidan to'liq nazoratga ega bo'lganligi sababli, unga o'z imtiyozlarini root qilish uchun oshirish imkonini beruvchi ekspluatatsiya yaratish qiyin emas. Muammodan sudo ruxsatlari yoki sudoer-dagi foydalanuvchiga xos sozlamalardan qat'i nazar, har qanday foydalanuvchi foydalanishi mumkin. Muammoni bloklash uchun /etc/sudoers-da “pwfeedback” sozlamasi yo‘qligiga ishonch hosil qilishingiz kerak va agar kerak bo‘lsa, uni o‘chirib qo‘ying (“Defaults !pwfeedback”). Muammo borligini tekshirish uchun kodni ishga tushirishingiz mumkin:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Parol: Segmentatsiya xatosi

Manba: opennet.ru

a Izoh qo'shish