Mae uwchgyfeirio a dilysu braint OpenBSD yn osgoi gwendidau mewn smtpd, ldapd a radiusd

Cwmni Qualys datgelu pedwar gwendidau yn OpenBSD, ac mae un ohonynt yn caniatáu ichi gysylltu o bell heb ddilysu â rhai gwasanaethau rhwydwaith, ac mae'r tri arall yn cynyddu eich breintiau yn y system. Nododd adroddiad Qualys ymateb cyflym datblygwyr OpenBSD - roedd yr holl broblemau dileu в OpenBSD 6.5 и OpenBSD 6.6 o fewn 40 awr ar ôl hysbysiad preifat.

Mae'r bregusrwydd y gellir ei ecsbloetio o bell yn cael ei achosi gan wall wrth ffonio'r triniwr dilysu yn llyfrgell y llyfrgell, sy'n galw
rhaglen /usr/libexec/auth/login_style pasio dadleuon ar y llinell orchymyn. Gan gynnwys wrth ffonio login_style gan ddefnyddio'r paramedr dewisol “-s service”, mae'n bosibl trosglwyddo enw'r protocol. Os ydych yn defnyddio nod " -" ar ddechrau enw defnyddiwr, bydd yr enw hwn yn cael ei drin fel opsiwn wrth redeg login_style. Yn unol â hynny, os byddwch yn nodi “-schallenge” neu “-schallenge:passwd” fel yr enw defnyddiwr yn ystod y dilysu, yna bydd login_style yn gweld y cais fel cais i ddefnyddio'r triniwr S/Allwedd.

Y broblem yw bod y protocol S/Key yn login_style yn cael ei gefnogi'n ffurfiol yn unig, ond ei fod yn cael ei anwybyddu mewn gwirionedd gydag allbwn arwydd o ddilysu llwyddiannus. Felly, gall ymosodwr, trwy esgus bod y defnyddiwr "-challenge", osgoi dilysu a chael mynediad heb ddarparu cyfrinair neu allweddi. Mae'n bosibl y bydd y broblem yn effeithio ar yr holl wasanaethau rhwydwaith sy'n defnyddio galwadau libc safonol ar gyfer dilysu. Er enghraifft, cefnogir y gallu i osgoi dilysu yn smtpd (AUTH PLAIN), ldapd a radiusd.

Nid yw'r bregusrwydd yn ymddangos yn sshd, gan fod ganddo amddiffyniad ychwanegol sy'n gwirio presenoldeb y defnyddiwr yn y system. Fodd bynnag, gellir defnyddio sshd i brofi pa mor agored i niwed yw system - wrth gyrchu'r enw defnyddiwr "-sresponse:passwd", mae'r cysylltiad yn hongian, gan fod sshd yn aros i login_passwd ddychwelyd y paramedrau her, ac mae login_passwd yn aros i'r paramedrau coll cael ei anfon (enw "- sresponse" yn cael ei drin fel opsiwn). Mae'n bosibl y gallai ymosodwr lleol geisio osgoi dilysu yn y cyfleustodau su, ond mae pasio'r enw "-sresponse" yn achosi i'r broses chwalu trwy ddychwelyd pwyntydd null wrth weithredu'r swyddogaeth getpwnam_r ("-schallenge", ...).

Gwendidau eraill:

  • CVE-2019-19520 Uwchgyfeirio braint leol trwy drin y cyfleustodau xlock a gyflenwir gyda'r faner sgid yn newid y grŵp i "auth". Yn y cod xlock, gwaherddir ailddiffinio llwybrau i lyfrgelloedd dim ond pan fydd y dynodwr defnyddiwr (setuid) yn cael ei newid, sy'n caniatáu i'r ymosodwr newid y newidyn amgylchedd “LIBGL_DRIVERS_PATH” a threfnu llwytho ei lyfrgell a rennir, y bydd ei god yn cael ei weithredu ar ôl codi breintiau i’r grŵp “auth”.
  • CVE-2019-19522 - Yn caniatáu i ddefnyddiwr lleol sy'n aelod o'r grŵp "auth" redeg cod fel gwraidd pan fydd dilysiad S/Key neu YubiKey wedi'i alluogi ar y system (ddim yn weithredol yn ddiofyn). Mae ymuno â'r grŵp “auth”, y gellir ei gyrchu trwy fanteisio ar y bregusrwydd uchod yn xlock, yn caniatáu ichi ysgrifennu ffeiliau i'r cyfeiriaduron /etc/skey a /var/db/yubikey. Er enghraifft, gallai ymosodwr ychwanegu ffeil newydd /etc/skey/root i gynhyrchu allweddi un-amser i'w dilysu fel y defnyddiwr gwraidd trwy S/Key.
  • CVE-2019-19519 - y posibilrwydd o gynyddu cyfyngiadau adnoddau trwy drin y cyfleustodau su. Pan nodir yr opsiwn "-L", sy'n achosi i ymdrechion dilysu gael eu hailadrodd yn gylchol os yn aflwyddiannus, dim ond unwaith y gosodir y dosbarth defnyddiwr ac nid yw'n cael ei ailosod ar ymdrechion dilynol. Gall ymosodwr weithredu “su -l -L” ar yr ymgais gyntaf i fewngofnodi rhywun arall gyda dosbarth cyfrif gwahanol, ond ar yr ail ymgais gall ddilysu fel ef ei hun yn llwyddiannus. Yn y sefyllfa hon, bydd y defnyddiwr yn destun cyfyngiadau yn seiliedig ar y dosbarth defnyddiwr a nodir ar yr ymgais gyntaf (er enghraifft, y nifer uchaf o brosesau neu faint cof ar gyfer proses). Mae'r dull ond yn gweithio ar gyfer terfynau benthyca gan ddefnyddwyr di-freintiedig, gan fod yn rhaid i'r defnyddiwr gwraidd fod yn y grŵp olwynion).

Yn ogystal, gellir ei nodi gweithredu yn OpenBSD, dull newydd ar gyfer gwirio dilysrwydd galwadau system, sy'n cymhlethu ymhellach ymelwa ar wendidau. Mae'r dull yn caniatáu i alwadau system gael eu gweithredu dim ond os ydynt yn cael eu cyrchu o ardaloedd cof a gofrestrwyd yn flaenorol. I nodi ardaloedd cof arfaethedig galwad system newydd msyscall().

Ffynhonnell: opennet.ru