Qualys ettevõte neli OpenBSD-s on üks neist haavatavustest, mis võimaldab toimub kauglühendust mõningate võrgu teenustega ilma autentimata, ning kolm ülejäänut võimaldavad omandada süsteemis tõstetud privileegid. Qualys'i raportis märgiti OpenBSD arendajate kiire reageerimine — kõik probleemid olid ühes ja lahendatud 40 tunni jooksul pärast era teavitamist.
Kaugelt ärakasutatav haavatavus on põhjustatud viga autentimise töötleva teenuse korraldamisel libc teegis, mis kutsub esile
programmi /usr/libexec/auth/login_style, edastades argumente käskude reas. Sealhulgas kutse puhul login_style valikuliselt parameetri "-s service" kaudu on lubatud edastada protokolli nime. Kui kasutajanime alguses on märk «-«, siis tõlgendatakse seda nime valiku tegemisena login_style'i käivitamisel. Seega, kui autentimise ajal on kasutajanimeks määratud «-schallenge» või «-schallenge:passwd», siis login_style käsitleb seda päringuna töötleja kasutamiseks. .
Probleem on selles, et S/Key protokolli login_style'is toetatakse vaid formaalselt, samas kui tegelikult jäetakse see tähelepanuta edastades sisse logimise edukuse tunnuse. Seega saab ründaja, esinedes kasutajana "-schallenge", autentimise mööda minna ning pääseda juurde ilma parooli või võtmete esitamiseta. Potentsiaalselt on probleemile alustatud kõik võrgu teenused, mis kasutavad tavalisi libc'i funktsioone autentimiseks. Näiteks on see, et autentimise vältimine on kinnitatud smtpd-s (AUTH PLAIN), ldapd-s ja radiusd-s.
sshd-s puuduvus ei avaldu, kuna see sisaldab lisakaitset, mis kontrollib, kas kasutaja on süsteemis. Siiski saab sshd-d kasutada süsteemi haavatavuse kontrollimiseks — kasutajanime „-sresponse:passwd” kasutamisel hangub ühendus, kuna sshd ootab login_passwd-ilt kutsumise parameetrite (challenge) tagastamist, samas kui login_passwd ootab puuduvate parameetrite edastamist (nimi „-sresponse” tõlgendatakse valikuna). Potentsiaalne kohaliku ründaja võib proovida petta autentimist su utiliidis, kuid nime „-sresponse” edastamine põhjustab protsessi kokkuvarisemise, kuna getpwnam_r(„-schallenge”, …) funktsiooni täitmisel tagastatakse nullnäidik.
Teised haavatavused:
- CVE-2019-19520 — kohalike privileegide tõstmine xlock utiliidi manipulatsioonide kaudu, mis on toodud sgid lipuga, muutes rühma 'auth'. xlock koodis keelatakse teekide teede ülekirjutamine ainult kasutaja identifikaatori (setuid) muutmise korral, mis võimaldab ründajal muuta 'LIBGL_DRIVERS_PATH' keskkonnamuutujat ja korraldada oma jagatud teegi laadimist, mille kood käivitub pärast privileegide tõstmist rühma 'auth'.
- CVE-2019-19522 — võimaldab kohalikul kasutajal, kes kuulub rühma 'auth', käivitada koodi root õigustega autentimisseadme S/Key või YubiKey (vaikimisi ei ole aktiivsed) kaudu. Rühma 'auth' kuulumine, millele võib juurde pääseda, kasutades eelmainitud haavatavust xlockis, võimaldab luua faile kaustades /etc/skey ja /var/db/yubikey. Näiteks võib ründaja lisada uue faili /etc/skey/root, et genereerida ühekorra võtmeid autentimiseks root kasutajana S/Key kaudu.
- CVE-2019-19519 — võimalus avada ressursilimiite su utiliidi manipulatsioonide kaudu. Kui kasutatakse valikut „-L”, mis eeldab autentimise katsete korduvat proovimist ebaõnnestumise korral, seatakse kasutajaklass ainult üks kord ja ei lähtestata järgmiste katsete korral. Ründaja saab käivitada „su -l -L” ja esimesel katsel sisestada vale sisselogimise teise klassi kontoga, kuid teisel katsel autentida end edukalt oma kontona. Sellises olukorras määratakse kasutajale limiidid, mis vastavad esimesel katsel määratud kasutajaklassile (nt maksimaalne protsesside arv või protsessi mälumaht). Meetod töötab ainult madala privileegiga kasutajatelt laenatud limiitide jaoks, kuna root-kasutaja jaoks peab ta olema wheel-grupis.
Lisaks saab märkida OpenBSD-s on uus meetod süsteemikutsungite ligipääsukontrolli kontrollimiseks, mis keerulisemaks muudab haavatavuste ära kasutamise. Meetod lubab süsteemikutsungeid täita ainult siis, kui neid kutsutakse eelnevalt registreeritud mälupiirkondadest. Mälupiirkondade märgistamiseks uus süsteemikõne .
Allikas: opennet.ru
