Ranljivost u glibc koja omogućava dobijanje root pristupa u sistemu

Družba Qualys je odkrila nevarno ranljivost (CVE-2023-6246) v standardni knjižnici C Glibc, ki omogoča izvajanje zlonamerne kode s povišanimi privilegiji skozi manipulacijo pri zagonu SUID aplikacij. Raziskovalci so uspeli razviti delujoč izkoriščevalec, ki omogoča pridobitev pravic root s manipulacijo argumentov ukazne vrstice pri zagonu orodja su.

Ranljivost je povzročena zaradi preplavitve pomnilnika v funkciji __vsyslog_internal(), ki se uporablja pri klicih funkcij syslog() in vsyslog(). Težava nastane zaradi napake pri poskusu izliva preko makra SYSLOG_HEADER predolgega imena aplikacije. Pri poskusu širjenja pomnilnika ob upoštevanju dolgega imena pride do napake, zaradi katere se podatki zapišejo v staro pomnilniško območje začetne manjše velikosti.

Pri organizaciji napada preko orodja su lahko napadalec spremeni ime procesa pri zagonu aplikacije s spremembo vrednosti argv[0], ki se uporablja za pridobitev informacij o imenu programa pri izpisu v dnevnik, ter doseže obvladano prepisovanje podatkov izven dodeljenega pomnilnika. Napad prelivanja lahko nato uporabi za prepisovanje strukture nss_module v knjižnici nss za ustvarjanje skupne knjižnice in njeno nalaganje s pravicami root.

Težava se pojavi od različice glibc 2.37, izdane avgusta 2022, ki vključuje spremembo za obravnavo situacije pri poskusu zapisa prevelikih sporočil. Ranljivost je bila povrnjena v vejo glibc 2.36 in pakete distribucij s starejšimi različicami glibc, saj je omenjeno popravilo odpravilo ranljivost CVE-2022-39046, ki je vodila do puščanja podatkov iz kupca. Tako se je zgodilo, da je popravek nedolžne ranljivosti povzročil kritično težavo. Zanimivo je, da je bila podobna ranljivost v funkciji vsyslog() iz knjižnice libc 5.4.3 prijavljena že leta 1997.

Potrditev prisotnosti ranljivosti je bila ugotovljena v Debianu 12/13, Ubuntu 23.04/23.10 in Federi 37-39. Delovanje izkoriščevalca za pridobitev pravic root s strani nepodeljenega uporabnika je bilo prikazano v popolnoma posodobljenem okolju Fedora 38 z vsemi privzetimi zaščitnimi mehanizmi. Ranljivost se lahko izkorišča le lokalno, saj zahteva prenos več kot 1024 bajtov preko parametra argv[0] ali argumenta ident v funkciji openlog().

Odprava ranljivosti je bila vključena pred nekaj urami v kodo Glibc in bo del jutrišnje posodobitve Glibc 2.39, skupaj z odpravo še dveh ranljivosti (CVE-2023-6779, CVE-2023-6780), ki prav tako zadevata kodo __vsyslog_internal() in povzročata prenapolnitev pomnilnika. Poleg tega je podjetje Qualys opozorilo na ugotovljeno prenapolnitev pomnilnika v implementaciji funkcije qsort(), ki ni bila opredeljena s strani razvijalcev Glibc kot ranljivost, saj njeno izkoriščanje zahteva uporabo nenavadne funkcije primerjanja, ki vrača razliko med primerjanimi parametri kot argument pri klicu qsort.

Status odstranitve ranljivosti v distribucijah lahko ocenite na teh straneh: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Slednjo ukaz lahko uporabite za testiranje ranljivosti sistema: $ (exec -a "`printf ‘28000x’ 1`" /usr/bin/su < /dev/null)
Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster