Vundeblecoj en OpenBSD permesante privilegian eskaladon kaj aŭtentikigan pretervojon en smtpd, ldapd kaj radiusd

Qualys Kompanio rivelis kvar vundeblecoj en OpenBSD, unu el kiuj ebligas al vi konekti malproksime sen aŭtentigo al iuj retaj servoj, kaj la aliaj tri pliigi siajn privilegiojn en la sistemo. La raporto Qualys notis la rapidan respondon de la programistoj de OpenBSD - ĉiuj problemoj estis eliminita в OpenBSD 6.5 и OpenBSD 6.6 ene de 40 horoj post la privata avizo.

La malproksime ekspluatebla vundebleco estas kaŭzita de eraro en aranĝado de la alvoko al la aŭtentikigtraktilo en la libc-biblioteko, kiu vokas
/usr/libexec/auth/login_style programo pasante argumentojn sur la komandlinio. Inkluzive kiam oni vokas login_style uzante la laŭvolan parametron "-s servo", pasigi la nomon de la protokolo estas permesita. Se "-" signo estas uzata komence de la uzantnomo, ĉi tiu nomo estos traktata kiel opcio kiam login_style estas rulita. Sekve, se vi specifas "-schallenge" aŭ "-schallenge: passwd" kiel la uzantnomo dum aŭtentikigo, tiam login_style perceptos la peton kiel peton uzi la pritraktilon. S/Ŝlosilo.

La problemo estas, ke la S/Key-protokolo en login_style estas subtenata nur formale, sed efektive estas ignorita kun eligo de signo de sukcesa aŭtentikigo. Tiel, atakanto povas prezentiĝi kiel la "-schallenge" uzanto kaj preteriri aŭtentikigon kaj akiri aliron sen specifi pasvorton aŭ ŝlosilojn. Ĉiuj retaj servoj, kiuj uzas regulajn libc-alvokojn por aŭtentigo, estas eble trafitaj de la problemo. Ekzemple, la kapablo preteriri aŭtentikigon estas konfirmita en smtpd (AUTH PLAIN), ldapd kaj radiusd.

La vundebleco ne manifestiĝas en sshd, ĉar ĝi havas plian protekton kun kontrolado de la ĉeesto de la uzanto en la sistemo. Tamen, sshd povas esti uzata por testi ĉu sistemo estas sentema al vundebleco - dum aliro al la uzantnomo "-sresponse:passwd", la konekto pendas, ĉar sshd atendas ke login_passwd redonu la parametrojn de la voko (defio), kaj login_passwd. atendas la translokigon de mankantaj parametroj (nomo "- sresponse" estas prenita kiel opcio). Ebla loka atakanto povus provi preterpasi aŭtentikigon en la utileco su, sed pasi la nomon "-sresponse" igas la procezon kraŝi pro la reveno de nula montrilo dum plenumado de la funkcio getpwnam_r ("-schallenge", ...) .

Aliaj vundeblecoj:

  • CVE-2019-19520 - Loka privilegia eskalado per manipulado de la xlock-ilaĵo, kiu venas kun la sgid-flago, kiu ŝanĝas la grupon al "aŭth". En la xlock-kodo, redifino de bibliotekaj vojoj estas malpermesita nur kiam la uzantidentigilo (setuid) estas ŝanĝita, kio permesas al la atakanto ŝanĝi la mediovariablon "LIBGL_DRIVERS_PATH" kaj organizi la ŝarĝon de sia komuna biblioteko, kies kodo estos ekzekutita. post privilegia eskalado al la "aŭth" grupo.
  • CVE-2019-19522 - Permesas al loka uzanto en la "aŭth" grupo ruli kodon kiel radiko kiam S/Key aŭ YubiKey aŭtentigo estas ebligita en la sistemo (ne ebligita defaŭlte). Membreco en la "aŭth" grupo, kiu estas alirebla per ekspluatado de la supra xlock vundebleco, permesas dosierojn esti skribitaj al la /etc/skey kaj /var/db/yubikey dosierujoj. Ekzemple, atakanto povus aldoni novan /etc/skey/root-dosieron por generi unufojajn ŝlosilojn por radika aŭtentigo per S/Key.
  • CVE-2019-19519 - Ebleco pliigi limojn de rimedoj per manipuladoj kun la utileco su. Kiam oni specifas la opcion "-L", kiu implicas ciklan ripeton de aŭtentikigprovoj en kazo de fiasko, la uzantklaso estas agordita nur unufoje kaj ne estas rekomencigita ĉe postaj provoj. Atakanto povas ekzekuti "su -l -L" ĉe la unua provo eniri la ensaluton de iu alia kun malsama kontoklaso, sed ĉe la dua provo sukcese aŭtentikigi sub si mem. En ĉi tiu situacio, la uzanto estos fiksitaj limoj respondaj al la uzantklaso specifita sur la unua provo (ekzemple, la maksimuma nombro da procezoj aŭ la memorgrandeco por procezo). La metodo funkcias nur por pruntlimoj de ne-privilegiaj uzantoj, ĉar la radika uzanto devas esti en la radgrupo).

Aldone, ĝi povas esti notita efektivigo en OpenBSD nova metodo por kontroli la validecon de sistemvokoj, plue malfaciligante la ekspluaton de vundeblecoj. La metodo permesas al sistemvokoj esti efektivigitaj nur se ili estas aliritaj de antaŭe registritaj memorareoj. Por marki areojn de memoro proponis nova sistemvoko msyscall().

fonto: opennet.ru