OpenBSD-voorregte-eskalasie en -verifikasie omseil kwesbaarhede in smtpd, ldapd en radiusd

Qualys Maatskappy geopenbaar vier kwesbaarhede in OpenBSD, waarvan een jou toelaat om op afstand sonder verifikasie aan sommige netwerkdienste te koppel, en die ander drie verhoog jou voorregte in die stelsel. Die Qualys-verslag het kennis geneem van die vinnige reaksie van die OpenBSD-ontwikkelaars - alle probleme was uitgeskakel в OpenBSD 6.5 и OpenBSD 6.6 binne 40 uur na private kennisgewing.

Die kwesbaarheid wat op afstand kan ontgin word veroorsaak deur 'n fout met die oproep van die verifikasie-hanteerder in die libc-biblioteek, wat oproepe
program /usr/libexec/auth/login_style deur argumente op die opdragreël deur te gee. Insluitend wanneer login_style geroep word met die opsionele parameter "-s diens", is dit moontlik om die protokolnaam oor te dra. As jy 'n "-" karakter aan die begin van 'n gebruikersnaam gebruik, sal hierdie naam as 'n opsie hanteer word wanneer login_style uitgevoer word. Gevolglik, as jy “-schallenge” of “-schallenge:passwd” as die gebruikernaam tydens verifikasie spesifiseer, dan sal login_style die versoek sien as 'n versoek om die hanteerder te gebruik S/Sleutel.

Die probleem is dat die S/Key-protokol in login_style slegs formeel ondersteun word, maar eintlik geïgnoreer word met die uitvoer van 'n teken van suksesvolle verifikasie. Dus kan 'n aanvaller, deur hom as die gebruiker "-uitdaging" voor te doen, verifikasie omseil en toegang verkry sonder om 'n wagwoord of sleutels te verskaf. Alle netwerkdienste wat standaard libc-oproepe vir stawing gebruik, word moontlik deur die probleem geraak. Byvoorbeeld, die vermoë om verifikasie te omseil word ondersteun in smtpd (AUTH PLAIN), ldapd en radiusd.

Die kwesbaarheid verskyn nie in sshd nie, aangesien dit bykomende beskerming het wat die teenwoordigheid van die gebruiker in die stelsel kontroleer. sshd kan egter gebruik word om die kwesbaarheid van 'n stelsel te toets - wanneer toegang tot die gebruikernaam "-sresponse:passwd" verkry word, hang die verbinding, aangesien sshd wag vir login_passwd om die uitdagingsparameters terug te gee, en login_passwd wag vir die ontbrekende parameters om gestuur word (naam "- sresponse" word as 'n opsie hanteer). 'n Plaaslike aanvaller kan moontlik probeer om verifikasie in die su-nutsprogram te omseil, maar die deurgee van die naam "-sresponse" veroorsaak dat die proses ineenstort deur 'n nulwyser terug te stuur wanneer die getpwnam_r("-challenge", ...) funksie uitgevoer word.

Ander kwesbaarhede:

  • CVE-2019-19520 Plaaslike voorreg-eskalasie deur manipulasie van die xlock-hulpprogram wat saam met die sgid-vlag voorsien word, wat die groep verander na "auth". In die xlock-kode word herdefiniëring van paaie na biblioteke slegs verbied wanneer die gebruikersidentifiseerder (setuid) verander word, wat die aanvaller toelaat om die omgewingsveranderlike "LIBGL_DRIVERS_PATH" te verander en die laai van sy gedeelde biblioteek te organiseer, waarvan die kode uitgevoer sal word na die verhoging van voorregte aan die "auth"-groep.
  • CVE-2019-19522 - Laat 'n plaaslike gebruiker toe wat 'n lid van die "auth"-groep is om kode as wortel uit te voer wanneer S/Key of YubiKey-verifikasie op die stelsel geaktiveer is (nie by verstek aktief nie). Deur by die "auth"-groep aan te sluit, waartoe toegang verkry kan word deur die bogenoemde kwesbaarheid in xlock te ontgin, kan u lêers na die /etc/skey en /var/db/yubikey-gidse skryf. Byvoorbeeld, 'n aanvaller kan 'n nuwe lêer /etc/skey/root byvoeg om eenmalige sleutels vir stawing as die wortelgebruiker via S/Key te genereer.
  • CVE-2019-19519 - die moontlikheid om hulpbronlimiete te verhoog deur manipulasie van die su-nutsprogram. Wanneer die "-L"-opsie gespesifiseer word, wat veroorsaak dat verifikasiepogings siklies herhaal word indien onsuksesvol, word die gebruikersklas slegs een keer gestel en word nie met daaropvolgende pogings teruggestel nie. 'n Aanvaller kan "su -l -L" uitvoer met die eerste poging om iemand anders se aanmelding met 'n ander rekeningklas in te voer, maar met die tweede poging kan hy suksesvol as homself staaf. In hierdie situasie sal die gebruiker onderhewig wees aan limiete gebaseer op die gebruikersklas wat tydens die eerste poging gespesifiseer is (byvoorbeeld die maksimum aantal prosesse of geheuegrootte vir 'n proses). Die metode werk net vir leenlimiete van onbevoorregte gebruikers, aangesien die wortelgebruiker in die wielgroep moet wees).

Daarbenewens kan dit opgemerk word implementering in OpenBSD, 'n nuwe metode om die geldigheid van stelseloproepe na te gaan, wat die uitbuiting van kwesbaarhede verder bemoeilik. Die metode laat toe dat stelseloproepe slegs uitgevoer word as toegang tot hulle verkry word vanaf voorheen geregistreerde geheueareas. Om geheue areas te merk voorgestelde nuwe stelsel oproep msyscall().

Bron: opennet.ru