Tvrtka Qualys četiri u OpenBSD-u, od kojih jedna omogućava daljinski pristup bez autentifikacije nekim mrežnim uslugama, dok tri druge mogu povećati svoje privilegije u sustavu. U izvještaju Qualys naglašena je brza reakcija programera OpenBSD-a — svi problemi su u i tijekom 40 sati nakon privatnog obavještenja.
Daljinski iskorištavana ranjivost nastaje zbog greške u organizaciji poziva autentifikacijskog obrtnika u knjižnici libc, koja poziva
program /usr/libexec/auth/login_style s proslijeđenim argumentima u naredbenoj liniji. Osim toga, pri pozivu login_style uz pomoć opcijskog parametra «-s service» dozvoljeno je proslijediti naziv protokola. U slučaju korištenja simbola «-» na početku korisničkog imena, to će ime biti obrađeno kao opcija prilikom pokretanja login_style. Shodno tome, ako prilikom autentifikacije navedete korisničko ime «-schallenge» ili «-schallenge:passwd», tada će login_style očitati zahtjev za korištenjem obrtnika .
Problem je u tome što se protokol S/Klјuč u login_style podržava samo formalno, dok se u praksi ignoriše s izlazom oznake za uspješnu autentifikaciju. Tako, napadač se može, predstavljajući se kao korisnik «-schallenge», zaobići autentifikaciju i dobiti pristup bez navođenja lozinke ili ključeva. Potencijalno su svih mrežnih usluga podložne ovom problemu, koristeći standardne pozive libc za autentifikaciju. Na primjer, mogućnost pristupa bez autentifikacije potvrđena je u smtpd-u (AUTH PLAIN), ldapd-u i radiusd-u.
U sshd-u ranjivost se ne manifestira, budući da postoji dodatna zaštita provjerom prisutnosti korisnika u sustavu. Ipak, sshd se može koristiti za provjeru ranjivosti sustava — prilikom pristupanja s korisničkim imenom «-sresponse:passwd» veza se blokira, jer sshd čeka povratak parametara poziva (challenge) od login_passwd-a, a login_passwd čeka prosljeđivanje nedostajućih parametara (ime «-sresponse» se shvaća kao opcija). Potencijalno lokalni napadač može pokušati zaobići autentifikaciju u alatu su, ali prosljeđivanje imena «-sresponse» dovodi do pada procesa zbog povratka nultog pokazivača prilikom izvođenja funkcije getpwnam_r(«-schallenge», …).
Ostale ranjivosti:
- CVE-2019-19520 — lokalno podizanje privilegija putem manipulacije alatom xlock, koji se isporučuje s sgid oznakom, promjenom grupe na "auth". U kodu xlock, prepisivanje putanja do biblioteka je onemogućeno samo tokom promjene korisničkog identifikatora (setuid), što napadaču omogućava promjenu varijable okruženja "LIBGL_DRIVERS_PATH" i organiziranje učitavanja vlastite dijeljene biblioteke, čiji će se kod izvršiti nakon podizanja privilegija na grupu "auth".
- CVE-2019-19522 — omogućava lokalnom korisniku, koji je član grupe "auth", da pokrene kod s root pravima kada je autentikacija omogućena putem S\/Key ili YubiKey (podrazumijevano nisu aktivni). Pristup grupi "auth", koji se može dobiti iskorištavanjem prethodno spomenute ranjivosti u xlocku, omogućava zapisivanje datoteka u direktorije \/etc\/skey i \/var\/db\/yubikey. Na primjer, napadač može dodati novu datoteku \/etc\/skey\/root za generiranje jednokratnih ključeva za autentikaciju pod korisnikom root putem S\/Key.
- CVE-2019-19519 — mogućnost podizanja limita na resursima putem manipulacije alatom su. Kada se koristi opcija "-L", koja pretpostavlja ciklično ponavljanje pokušaja autentikacije u slučaju neuspjeha, klasa korisnika postavlja se samo jednom i ne resetira se pri slijedećim pokušajima. Napadač može izvršiti "su -l -L" i, prilikom prvog pokušaja unijeti tuđi login s drugom klasom računa, ali pri drugom pokušaju uspješno se autentificirati kao sebe. U ovoj situaciji korisniku će se postaviti limiti koji odgovaraju klasi korisnika koja je navedena prilikom prvog pokušaja (na primjer, maksimalni broj procesa ili veličina memorije za proces). Metod radi samo za preuzimanje limita od neprivilegiranih korisnika, jer za korisnika root, potrebno je prisustvo u grupi wheel.
Dodatno se može istaknuti u OpenBSD novog metoda provjere valjanosti pristupanja sistemskim pozivima, dodatno otežavajući iskorištavanje ranjivosti. Metod dopušta izvršenje sistemskih poziva samo ako se obraćaju iz prethodno registriranih područja memorije. Za označavanje područja memorije novi sistemski poziv .
Izvor: opennet.ru
