Kompania Qualys katër në OpenBSD, njëra prej të cilave lejon lidhje të largëta pa autentifikim me disa shërbime rrjeti, ndërsa tre të tjerat rrisin privilegjet e tyre në sistem. Në raportin e Qualys theksohet reagimi i shpejtë i zhvilluesve të OpenBSD - të gjitha problemet u zgjidhën në dhe brenda 40 orëve pas njoftimit privat.
Vulnerabiliteti i shfrytëzuar nga distanca është shkaktuar 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 duke kaluar argumente në linjën e komandës. Në veçanti, gjatë thirrjes login_style me parametrin opsional "-s service" lejohet kalimi i emrit të protokollit. Në rast se përdoret simboli "-" në fillim të emrit të përdoruesit, ky emër do të trajtohet si një opsion gjatë nisjes së login_style. Prandaj, nëse specifikohet gjatë autentifikimit si emri i përdoruesit "-schallenge" ose "-schallenge:passwd", atëherë login_style do ta perceptojë këtë si një kërkesë për të përdorur trajtuesin e .
Problemi është se protokolli S/Key në login_style mbështetet vetëm formalisht, dhe në të vërtetë injorohet duke dhënë një sinjal për suksesin e autentifikimit. Kështu, një sulmues mund, duke u prezantuar si përdoruesi "-schallenge", të anashkalojë autentifikimin dhe të marrë akses pa specifikuar fjalëkalime ose çelësa. Potencialisht, të gjitha shërbimet rrjet që përdorin thirrjet standarde libc për autentifikim janë të rrezikuara. Për shembull, është konfirmuar se mundësia e anashkalimit të autentifikimit është e mundur në smtpd (AUTH PLAIN), ldapd dhe radiusd.
NĂ« sshd, vulnerabiliteti nuk shfaqet, pasi ka njĂ« mbrojtje shtesĂ« me kontrollin e pranisĂ« sĂ« pĂ«rdoruesit nĂ« sistem. MegjithatĂ«, sshd mund tĂ« pĂ«rdoret pĂ«r tĂ« kontrolluar se sa e prekshme Ă«shtĂ« sistemi ndaj vulnerabilitetit - gjatĂ« lidhjes me emrin e pĂ«rdoruesit "-sresponse:passwd", lidhja ngec, pasi sshd pret kthimin e parametrave tĂ« thirrjes (challenge) nga login_passwd, ndĂ«rsa login_passwd pret tĂ« dĂ«rgojĂ« parametrat e munguar (emri "-sresponse" perceptohet si opsion). Potencialisht, njĂ« sulmues lokal mund tĂ« pĂ«rpiqet tĂ« anashkalojĂ« autentifikimin nĂ« utilitarin su, por kalimi i emrit "-sresponse" shkakton dĂ«shtimin e procesit pĂ«r shkak tĂ« kthimit tĂ« njĂ« treguesi null gjatĂ« ekzekutimit tĂ« funksionit getpwnam_r("-schallenge", âŠ).
Vulnerabilitete të tjera:
- CVE-2019-19520 - një rritje lokale e privilegjeve përmes manipulimeve me utilitarin xlock, i cili ofrohet me flagun sgid, duke ndryshuar grupin në "auth". Në kodin e xlock, ribrendimi i rrugëve për bibliotekat ndalohet vetëm gjatë ndërrimit të identifikuesit të përdoruesit (setuid), duke lejuar kështu sulmuesin të modifikojë variablën mjedisore "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 në grupin "auth".
- CVE-2019-19522 - lejon një përdorues lokal, që është anëtar i grupit "auth", të ekzekutojë kod me të drejtat e root-it kur aktivizohet autentifikimi në sistem përmes S/Key ose YubiKey (normalisht të papërfshira). Anëtarësimi në grupin "auth", të cilin është e mundur ta fitojë përmes shfrytëzimit të vulnerabilitetit të mësipërm në xlock, lejon që të shkruhen skedarë në direktorë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 njëherësh për autentifikim si përdorues root përmes S/Key.
- CVE-2019-19519 - mundësia e rritjes së limitëve të burimeve përmes manipulimeve me utilitarin su. Duke specifikuar opsionin "-L", i cili nënkupton përpjekje të përsëritura për autentifikim në rast dështimi, klasa e përdoruesit vendoset vetëm një herë dhe nuk përfundon me përpjekjet e ardhshme. Sulmuesi mund të ekzekutojë "su -l -L" dhe gjatë përpjekjes së parë të hyjë një username të huaj me një klasë tjetër llogarie, por me përpjekjen e dytë të autentikohet me sukses si vetja. Në këtë situatë, përdoruesve do t'u vendosen limitet që përputhen me klasën e përdoruesit të specifikuar në përpjekjen e parë (për shembull, numri maksimal i proceseve ose madhësia e memories për procesin). Ky metod funksionon vetëm për huazimin e limitëve nga përdoruesit pa privilegje, pasi për përdoruesin root duhet të jetë pjesë e grupit wheel).
Për më tepër, mund të theksohet në OpenBSD një metodë të re për verifikimin e përshtatshmërisë së thirrjes për thirrjet sistemore, duke e bërë më të vështirë shfrytëzimin e vulnerabiliteteve. Metoda lejon ekzekutimin e thirrjeve sistemore, vetëm nëse ato adresohen nga zona të regjistruara paraprakisht të memories. Për të shënuar zonat e memories një thirrje e re sistemore .
Burimi: opennet.ru
