OpenBSD артықшылығын арттыру және аутентификация smtpd, ldapd және radiusd жүйелеріндегі осалдықтарды айналып өтеді

Qualys компаниясы ашылды төртеуі осалдықтар OpenBSD жүйесінде, олардың біреуі кейбір желілік қызметтерге аутентификациясыз қашықтан қосылуға мүмкіндік береді, ал қалған үшеуі жүйедегі артықшылықтарыңызды арттырады. Qualys есебінде OpenBSD әзірлеушілерінің жылдам әрекеті атап өтілді - барлық мәселелер болды жойылды в OpenBSD 6.5 и OpenBSD 6.6 жеке хабарламадан кейін 40 сағат ішінде.

Қашықтан пайдаланатын осалдық libc кітапханасындағы аутентификация өңдеушісін шақыру қателігінен туындайды.
пәрмен жолында аргументтерді беретін /usr/libexec/auth/login_style бағдарламасы. Соның ішінде «-s service» қосымша параметрін пайдаланып login_style шақыру кезінде протокол атауын тасымалдауға болады. Пайдаланушы атының басында «-» таңбасын пайдалансаңыз, login_style іске қосылған кезде бұл атау опция ретінде қарастырылады. Сәйкесінше, аутентификация кезінде пайдаланушы аты ретінде «-schallenge» немесе «-schallenge:passwd» көрсетсеңіз, login_style сұранысты өңдеушіні пайдалану сұрауы ретінде қабылдайды. S/Key.

Мәселе мынада, login_style ішіндегі S/Key протоколына тек ресми түрде қолдау көрсетіледі, бірақ сәтті аутентификация белгісінің шығысымен іс жүзінде еленбейді. Осылайша, шабуылдаушы өзін «-challenge» пайдаланушы ретінде көрсету арқылы аутентификацияны айналып өтіп, құпия сөзді немесе кілттерді бермей-ақ қол жеткізе алады. Түпнұсқалық растама үшін стандартты libc қоңырауларын пайдаланатын барлық желі қызметтері мәселеге әсер етуі мүмкін. Мысалы, аутентификацияны айналып өту мүмкіндігі smtpd (AUTH PLAIN), ldapd және radiusd ішінде қолдау көрсетеді.

sshd-де осалдық пайда болмайды, өйткені оның жүйеде пайдаланушының болуын тексеретін қосымша қорғанысы бар. Дегенмен, sshd жүйесін жүйенің осалдығын тексеру үшін пайдалануға болады - "-sresponse:passwd" пайдаланушы атына қатынасу кезінде қосылым тоқтап қалады, өйткені sshd сынақ параметрлерін қайтару үшін login_passwd күтеді, ал login_passwd жетіспейтін параметрлерді күтеді. жіберіледі («- жауап» атауы опция ретінде қарастырылады). Жергілікті шабуылдаушы su утилитасында аутентификацияны айналып өтуге тырысуы мүмкін, бірақ "-sresponse" атауын беру getpwnam_r("-schallenge, ...) функциясын орындаған кезде нөлдік көрсеткішті қайтару арқылы процестің бұзылуына әкеледі.

Басқа осалдықтар:

  • CVE-2019-19520 Топты "auth" күйіне өзгертетін sgid жалаушасымен қамтамасыз етілген xlock қызметтік бағдарламасын манипуляциялау арқылы жергілікті артықшылықты арттыру. Xlock кодында кітапханаларға жолдарды қайта анықтауға пайдаланушы идентификаторы (setuid) өзгертілгенде ғана тыйым салынады, бұл шабуылдаушыға «LIBGL_DRIVERS_PATH» айнымалы ортасын өзгертуге және коды орындалатын өзінің ортақ кітапханасын жүктеуді ұйымдастыруға мүмкіндік береді. «auth» тобына артықшылықтарды көтергеннен кейін.
  • CVE-2019-19522 - жүйеде S/Key немесе YubiKey аутентификациясы қосылғанда (әдепкі бойынша белсенді емес) "auth" тобының мүшесі болып табылатын жергілікті пайдаланушыға кодты түбір ретінде іске қосуға мүмкіндік береді. xlock жүйесінде жоғарыда аталған осалдықты пайдалану арқылы қол жеткізуге болатын «auth» тобына қосылу /etc/skey және /var/db/yubikey каталогтарына файлдарды жазуға мүмкіндік береді. Мысалы, S/Key арқылы түбірлік пайдаланушы ретінде аутентификация үшін бір реттік кілттерді жасау үшін шабуылдаушы жаңа /etc/skey/root файлын қоса алады.
  • CVE-2019-19519 - су утилитасын манипуляциялау арқылы ресурс шектеулерін ұлғайту мүмкіндігі. Сәтсіз болған жағдайда аутентификация әрекеттерінің циклдік қайталануын тудыратын "-L" опциясы көрсетілгенде, пайдаланушы сыныбы тек бір рет орнатылады және кейінгі әрекеттерде қалпына келтірілмейді. Шабуылдаушы басқа тіркелгі класы бар басқа біреудің логинін енгізудің бірінші әрекетінде «su -l -L» сөзін орындай алады, бірақ екінші әрекетте ол өзін өзі ретінде сәтті аутентификациялай алады. Бұл жағдайда пайдаланушы бірінші әрекетте көрсетілген пайдаланушы сыныбына негізделген шектеулерге бағынады (мысалы, процестердің ең көп саны немесе процесс үшін жад өлшемі). Бұл әдіс тек артықшылықсыз пайдаланушылардан қарыз алу шектеулері үшін жұмыс істейді, себебі түбірлік пайдаланушы дөңгелектер тобында болуы керек).

Бұған қоса, атап өтуге болады жүзеге асыру OpenBSD жүйесінде жүйе шақыруларының жарамдылығын тексерудің жаңа әдісі, бұл осалдықтарды пайдалануды одан әрі қиындатады. Әдіс жүйелік шақыруларды, егер олар бұрын тіркелген жад аймақтарынан қатынайтын болса ғана орындауға мүмкіндік береді. Жад аймақтарын белгілеу үшін ұсынылған жаңа жүйелік қоңырау msyscall().

Ақпарат көзі: opennet.ru