Qualys kompaniyasi to'rtta OpenBSD da, ulardan biri autentifikatsiyasiz ma'lum tarmoq xizmatlariga masofadan ulanish imkonini beradi, qolgan uchtasi esa tizimdagi imtiyozlarni oshirishga imkon beradi. Qualys hisobotida OpenBSD ishlab chiquvchilarining tezkor javobi qayd etilgan - barcha muammolar hal qilindi. в и shaxsiy xabarnoma olinganidan keyin 40 soat ichida.
Masofadan foydalanish mumkin bo'lgan zaiflik libc kutubxonasida autentifikatsiya ishlov beruvchisiga qo'ng'iroqni tashkil qilishdagi xato tufayli yuzaga keladi, bu esa quyidagilarga olib keladi
/usr/libexec/auth/login_style dasturi buyruq satrida argumentlarni uzatadi. Ixtiyoriy "-s service" parametri yordamida login_style ni chaqirganda, protokol nomi uzatilishi mumkin. Agar foydalanuvchi nomining boshida "-" belgisi ishlatilsa, bu nom login_style ishga tushirilganda parametr sifatida qayta ishlanadi. Shunga ko'ra, agar siz autentifikatsiya paytida foydalanuvchi nomi sifatida "-schallenge" yoki "-schallenge:passwd" ni ko'rsatsangiz, login_style so'rovni ishlov beruvchidan foydalanish so'rovi sifatida talqin qiladi. .
Muammo shundaki, login_style dagi S/Key protokoli faqat rasman qo'llab-quvvatlanadi, ammo muvaffaqiyatli autentifikatsiya bayrog'i bilan amalda e'tiborga olinmaydi. Shuning uchun, tajovuzkor "-challenge" foydalanuvchisi sifatida o'zini ko'rsatib, autentifikatsiyani chetlab o'tib, parol yoki kalitlarni taqdim etmasdan kirish huquqiga ega bo'lishi mumkin. Autentifikatsiya uchun standart libc chaqiruvlaridan foydalanadigan barcha tarmoq xizmatlari bu muammoga potentsial zaif bo'lishi mumkin. Masalan, autentifikatsiyani chetlab o'tish ehtimoli smtpd (AUTH PLAIN), ldapd va radiusd da tasdiqlangan.
Zaiflik sshd da o'zini namoyon qilmaydi, chunki u foydalanuvchi tizimga kirganligini tekshirish orqali qo'shimcha himoyaga ega. Biroq, sshd tizimning zaifligini tekshirish uchun ishlatilishi mumkin — "-sresponse:passwd" foydalanuvchi nomiga kirganda, ulanish uzilib qoladi, chunki sshd login_passwd chaqiruv parametrlarini qaytarishni kutadi, login_passwd esa yo'qolgan parametrlarning o'tishini kutadi ("-sresponse" nomi variant sifatida ko'rib chiqiladi). Mahalliy tajovuzkor su yordamchi dasturida autentifikatsiyani chetlab o'tishga urinishi mumkin, ammo "-sresponse" nomini o'tkazish getpwnam_r("-schallenge", ...) funktsiyasini bajarayotganda nol ko'rsatkichning qaytishi tufayli jarayonning ishdan chiqishiga olib keladi.
Boshqa zaifliklar:
- CVE-2019-19520 — sgid bayrog'i bilan birga taqdim etiladigan xlock yordam dasturini boshqarish orqali mahalliy imtiyozlarni oshirish, guruhni "auth" ga o'zgartiradi. xlock kodida kutubxona yo'lini qayta aniqlash faqat foydalanuvchi identifikatori (setuid) o'zgartirilganda o'chiriladi, bu esa tajovuzkorga "LIBGL_DRIVERS_PATH" muhit o'zgaruvchisini o'zgartirish va o'zining umumiy kutubxonasini yuklash imkonini beradi, uning kodi "auth" guruhiga imtiyozlarni oshirgandan so'ng bajariladi.
- CVE-2019-19522 – tizimda S/Key yoki YubiKey autentifikatsiyasi yoqilgan bo'lsa (sukut bo'yicha yoqilmagan), "auth" guruhidagi mahalliy foydalanuvchiga root imtiyozlari bilan kodni bajarishga imkon beradi. Yuqorida aytib o'tilgan xlock zaifligidan foydalanib kirish mumkin bo'lgan "auth" guruhiga a'zolik /etc/skey va /var/db/yubikey kataloglariga fayllarni yozish imkonini beradi. Masalan, tajovuzkor root foydalanuvchisi sifatida S/Key autentifikatsiyasi uchun bir martalik kalitlarni yaratish uchun /etc/skey/root ga yangi fayl qo'shishi mumkin.
- CVE-2019-19519 — su yordamchi dasturini boshqarish orqali resurs cheklovlarini oshirish imkoniyati. Muvaffaqiyatsiz bo'lgan taqdirda takroriy autentifikatsiya urinishlari siklini nazarda tutadigan "-L" parametrini belgilashda, foydalanuvchi klassi faqat bir marta o'rnatiladi va keyingi urinishlarda qayta tiklanmaydi. Hujumchi "su -l -L" buyrug'ini bajarishi va birinchi urinishda boshqa birovning login ma'lumotlarini boshqa hisob klassi bilan kiritishi mumkin, lekin ikkinchi urinishda muvaffaqiyatli autentifikatsiya qilishi mumkin. Bunday holatda, foydalanuvchiga birinchi urinishda ko'rsatilgan foydalanuvchi klassiga mos keladigan cheklovlar beriladi (masalan, jarayonlarning maksimal soni yoki har bir jarayon uchun xotira hajmi). Bu usul faqat imtiyozsiz foydalanuvchilardan limitlarni qarz olish uchun ishlaydi, chunki root foydalanuvchisi wheel guruhiga a'zolikni talab qiladi.
Bundan tashqari, buni ta'kidlash mumkin OpenBSD tizim chaqiruvlarining haqiqiyligini tekshirish uchun yangi usulni taqdim etadi, bu esa ekspluatatsiyani yanada murakkablashtiradi. Bu usul tizim chaqiruvlarini faqat oldindan ro'yxatdan o'tgan xotira mintaqalaridan kirish mumkin bo'lgan taqdirda bajarishga imkon beradi. Xotira mintaqalarini belgilash uchun, yangi tizim chaqiruvi .
Manba: opennet.ru
