Dobësitë në OpenBSD që lejojnë rritjen e privilegjeve dhe anashkalimin e autentikimit në smtpd, ldapd dhe radiusd

Kompania Qualys identifikoi katër mangësive në OpenBSD, njëra prej të cilave lejon lidhje të largëta pa autentifikim me disa shërbime rrjeti, ndërsa tri të tjera rrisin privilegjet e tyre në sistem. Në raportin e Qualys vihet re reagimi i shpejtë i zhvilluesve të OpenBSD — të gjitha problemeve iu dha zgjidhje janë eliminuarOpenBSD 6.5 dhe OpenBSD 6.6 në një periudhë prej 40 orësh pas njoftimit privat.

Vulnerabiliteti i shfrytëzueshëm nga distanca shkaktohet nga një gabim në organizimin e thirrjes së trajtuesit të autentifikimit në bibliotekën libc, e cila thërret
programin /usr/libexec/auth/login_style me kalimin e argumenteve në linjën e komandës. Njëkohësisht, gjatë thirrjes së login_style me ndihmën e parametrave opsionalë «-s shërbim» lejohet kalimi i emrit të protokollit. Nëse në fillim të emrit të përdoruesit vendoset simboli «-», ky emër do të trajtohet si një opsion gjatë ekzekutimit të login_style. Prandaj, nëse për autentifikim jepet emri i përdoruesit «-schallenge» ose «-schallenge:passwd», login_style do ta trajtojë këtë si një kërkesë për përdorimin e trajtuesit S/Key.

Problemi është se protokolli S/Key në login_style mbështetet vetëm formalisht, ndërsa në të vërtetë injorohet duke dhënë një shenjë të suksesshme të autentifikimit. Kështu, një sulmues mund, duke u bërë si përdoruesi «-schallenge», të kalojë autentifikimin dhe të fitojë qasje pa dhënë fjalëkalim ose çelësa. Potencialisht, të gjitha shërbimet rrjetë që përdorin thirrjet standarde libc për autentifikim janë të ekspozuara ndaj këtij problemi. Për shembull, mundësia e qasjes përmes anashkalimit të autentifikimit është konfirmuar në smtpd (AUTH PLAIN), ldapd dhe radiusd.

Në sshd, vulnerabiliteti nuk shfaqet, pasi atje ka një mbrojtje shtesë me verifikimin e pranisë së përdoruesit në sistem. Megjithatë, sshd mund të përdoret për të kontrolluar nëse sistemi është i ekspozuar ndaj këtij vulnerabiliteti — gjatë thirrjes me emrin e përdoruesit «-sresponse:passwd» lidhja ngec, pasi sshd pret nga login_passwd kthimin e parametrave të thirrjes (challenge), ndërsa login_passwd pret kalimin e parametrave të munguar (emri «-sresponse» trajtohet si një opsion). Potencialisht, një sulmues lokal mund të provojë të anashkalohet autentifikimin në utilitarin su, por dhënia e emrit «-sresponse» çon në rrëzimin e procesit për shkak të kthimit të një treguesi null gjatë ekzekutimit të funksionit getpwnam_r(«-schallenge», …).

Dobësi të tjera:

  • CVE-2019-19520 — një rritje e privilegjeve lokale përmes manipulative me mjetin xlock, i cili ofrohet me flamurin sgid, duke ndryshuar grupin në "auth". Në kodin xlock, të modifikosh rrugët për bibliotekat ndalohet vetëm gjatë ndryshimit të identifikuesit të përdoruesit (setuid), duke lejuar që sulmuesi të ndryshojë variablën e ambientit "LIBGL_DRIVERS_PATH" dhe të organizojë ngarkimin e bibliotekës së tij të ndarë, kodi i së cilës do të ekzekutohet pas rritjes së privilegjeve deri te grupi "auth".
  • CVE-2019-19522 — i lejon një përdorues lokal, anëtar i grupit "auth", të ekzekutojë kod me të drejtat e root gjatë aktivizimit në sistemin e autentication përmes S/Key ose YubiKey (me default nuk janë të aktivizuara). Anëtarësimi në grupin "auth", të cilin mund ta fitojë duke shfrytëzuar vulnerabilitetin e përmendur më parë në xlock, lejon që të shkruhen skedarë në katalogët /etc/skey dhe /var/db/yubikey. Për shembull, sulmuesi mund të shtojë një skedar të ri /etc/skey/root për të gjeneruar çelësa të njëpërdorishëm për autentikimin si përdorues root përmes S/Key.
  • CVE-2019-19519 — mundësia për të rritur limitet e burimeve përmes manipulimeve me mjetin su. Kur specifikohet opsioni "-L", që nënkupton përpjekje ciklike për autentikim në rast dështimi, klasa e përdoruesit vendoset vetëm një herë dhe nuk reset-tohet në përpjekjet e ardhshme. Sulmuesi mund të ekzekutojë "su -l -L" dhe gjatë përpjekjes së parë të futë emrin e ndonjë përdoruesi tjetër me një klasë tjetër llogarie, por në përpjekjen e dytë të autentikohet me sukses si vetja. Në këtë situatë, përdoruesit do t'i vendosen limite që i korrespondon klasës së përdoruesit të specifikuar gjatë përpjekjes së parë (p.sh. numri maksimal i proceseve ose madhësia e memories për procesin). Metoda funksionon vetëm për huazimin e limitet nga përdoruesit e pa privilegjuar, pasi për përdoruesin root është e nevojshme të jetë anëtar i grupit wheel).

Gjithashtu mund të theksohet implementimi në OpenBSD një metode të re për verifikimin e përshtatshmërisë së thirrjeve të sistemit, duke e komplikuar më tej shfrytëzimin e vulnerabiliteteve. Metoda lejon ekzekutimin e thirrjeve të sistemit, vetëm nëse ato kërkohen nga zona të regjistruara paraprakisht të memories. Për të shënuar zonat e memories suggested thirrje e re sistemike msyscall().

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster