OpenBSD-n ahultasunak pribilegioak handitzea eta autentifikazioa saihestea ahalbidetzen dutenak smtpd, ldapd eta radiusd-en

Qualys konpainia agerian lau ahultasunak OpenBSDn, horietako batek sareko zerbitzu batzuetara autentifikaziorik gabe urrunetik konektatzeko aukera ematen du, eta beste hiruk sisteman dituzten pribilegioak handitzeko. Qualys txostenak OpenBSD garatzaileen erantzun azkarra adierazi zuen - arazo guztiak ziren ezabatuta Π² OpenBSD 6.5 ΠΈ OpenBSD 6.6 jakinarazpen pribatuaren ondorengo 40 orduko epean.

Urrunetik ustia daitekeen ahultasuna libc liburutegiko autentifikazio-kudeatzaileari deia antolatzean akats batek eragiten du.
/usr/libexec/auth/login_style programa komando-lerroko argumentuak pasatzen ditu. Login_style "-s service" aukerako parametroa erabiliz deitzean barne, protokoloaren izena pasatzea onartzen da. Erabiltzaile-izenaren hasieran "-" karakterea erabiltzen bada, izen hau aukera gisa tratatuko da login_style exekutatzen denean. Horren arabera, "-schallenge" edo "-schallenge: passwd" erabiltzaile-izen gisa zehazten baduzu autentifikazioan, login_style-k eskaera kudeatzailea erabiltzeko eskaera gisa hautemango du. S/Gakoa.

Arazoa da login_style-ko S/Key protokoloa formalki soilik onartzen dela, baina benetan autentifikazio arrakastatsuaren seinale baten irteeran alde batera uzten dela. Horrela, erasotzaile batek "-schallenge" erabiltzailetzat jo dezake eta autentifikazioa saihestu eta sarbidea lor dezake pasahitz edo gakorik zehaztu gabe. Autentifikaziorako libc dei erregularrak erabiltzen dituzten sare-zerbitzu guztiak arazoak izan ditzakete. Esate baterako, autentifikazioa saihesteko gaitasuna smtpd (AUTH PLAIN), ldapd eta radiusd-etan berresten da.

Ahultasuna ez da sshd-n agertzen, babes gehigarria baitu erabiltzaileak sisteman duen presentzia egiaztatzeko. Hala ere, sshd erabil daiteke sistema bat ahultasunen bat jasan dezakeen probatzeko - "-sresponse:passwd" erabiltzaile-izena atzitzean, konexioa zintzilikatzen da, sshd login_passwd deiaren parametroak itzultzeko (erronka) eta login_passwd itxaroten baitu. falta diren parametroen transferentziaren zain dago ("- sresponse" izena hartzen da aukera gisa). Erasotzaile lokal potentzial bat su utilitatean autentifikazioa saihesten saia liteke, baina "-sresponse" izena pasatzeak prozesua huts egitea eragiten du getpwnam_r("-schallenge", ...) funtzioa exekutatzean erakusle nulu bat itzultzeagatik. .

Beste ahultasun batzuk:

  • CVE-2019-19520 - Pribilegio lokalak igotzea, taldea "auth"-era aldatzen duen sgid banderarekin datorren xlock utilitatea manipulatuz. Xlock kodean, liburutegiko bideak birdefinitzea debekatuta dago erabiltzailearen IDa (setuid) aldatzen denean soilik, erasotzaileak "LIBGL_DRIVERS_PATH" ingurune-aldagaia aldatzeko eta bere liburutegi partekatuaren karga antolatzeko aukera ematen diona, zeinaren kodea exekutatuko baita. pribilegioak "auth" taldera igo ondoren.
  • CVE-2019-19522 - "Auth" taldeko erabiltzaile lokal bati kodea root gisa exekutatzeko aukera ematen dio sisteman S/Key edo YubiKey autentifikazioa gaituta dagoenean (ez dago gaituta lehenespenez). Goiko xlock ahultasuna baliatuz atzitu daitekeen "auth" taldeko kide izateak fitxategiak /etc/skey eta /var/db/yubikey direktorioetan idazteko aukera ematen du. Adibidez, erasotzaile batek /etc/skey/root fitxategi berri bat gehi dezake S/Key bidez erro autentifikaziorako behin-behineko gakoak sortzeko.
  • CVE-2019-19519 - Baliabideen mugak handitzeko aukera su utilitatearekin manipulazioen bidez. "-L" aukera zehazten denean, hau da, hutsegite kasuetan autentifikazio-saiakerak errepikatzea dakar, erabiltzaile-klasea behin bakarrik ezartzen da eta ez da berrezartzen hurrengo saiakeretan. Erasotzaileak "su -l -L" exekutatu dezake beste inoren saioa hasteko beste kontu klase batekin sartzeko lehen saiakeran, baina bigarren saiakeran bere burua ongi autentifikatzeko. Egoera horretan, erabiltzaileari lehen saiakeran zehaztutako erabiltzaile-klaseari dagozkion mugak ezarriko zaizkio (adibidez, prozesu baten gehienezko kopurua edo memoria-tamaina). Metodoak pribilegiorik gabeko erabiltzaileen mugak hartzeko soilik funtzionatzen du, root erabiltzaileak gurpil taldean egon behar baitu).

Gainera, nabarmendu daiteke ezarpena OpenBSDn sistema-deien baliozkotasuna egiaztatzeko metodo berri bat, ahultasunen ustiapena are gehiago zailduz. Metodoari esker, sistema-deiak exekutatu daitezke aurrez erregistratutako memoria-eremuetatik sartzen badira. Memoriaren eremuak markatzeko proposatu sistema dei berria msyscall().

Iturria: opennet.ru