Kompania Qualys zbuloi një vulnerabël të rrezikshëm (CVE-2023-6246) në bibliotekën standarde C Glibc, e cila lejon përmes manipulimeve me ekzekutimin e aplikacioneve SUID të arrihet ekzekutimi i kodit të përdoruesit me privilegje të rritura. Kërkuesit arritën të zhvillojnë një exploit funksional që mundëson marrëdhënie root përmes manipulimit të argumenteve të komandës gjatë ekzekutimit të utilitarit su.
Vulnerabiliteti shkaktohet nga tejmbushja e buffer-it në funksionin __vsyslog_internal(), i cili përdoret gjatë thirrjeve të funksioneve syslog() dhe vsyslog(). Problemi ndodh për shkak të një gabimi gjatë përpjekjes për të shpërndarë një emër aplikacioni shumë të gjatë përmes makros SYSLOG_HEADER. Gjatë përpjekjes për të zgjeruar buffer-in duke marrë parasysh emrin e gjatë ndodh një dështim, pas së cilës të dhënat shkruhen në buffer-in e vjetër me madhësi më të vogël.
Gjatë organizimit të një sulmi përmes utilitarit su, sulmuesi mund të ndryshojë emrin e procesit gjatë ekzekutimit të aplikacionit duke zëvendësuar vlerën argv[0], e cila përdoret për të marrë informacion mbi emrin e programit gjatë regjistrimit në log, dhe të arrijë një ripërshkrim të kontrolluar të të dhënave përtej buffer-it të caktuar. Më tej, tejmbushja mund të përdoret për të ripërshkruar strukturën nss_module në bibliotekën nss për të krijuar një bibliotekë të ndarë dhe për ta ngarkuar atë me privilegje root.
Problemi shfaqet që nga lëshimi i glibc 2.37, i publikuar në gusht 2022 dhe që përfshin një ndryshim që trajton situatën me përpjekjen për të shkruar mesazhe shumë të mëdha. Riparimi që sjell vulnerabilitetin është prapaktikuar në degën glibc 2.36 dhe paketat e shpërndarjeve me versione më të vjetra të glibc, pasi riparimi i përmendur eliminoi vulnerabilitetin CVE-2022-39046, i cili çon në rrjedhjen e të dhënave nga heap. Kështu, riparimi i një vulnerabiliteti jo të rrezikshëm çoi në shfaqjen e një problemi kritik. Rëndësi ka se për një vulnerabilitet të ngjashëm në funksionin vsyslog() në përbërjen e bibliotekës libc 5.4.3 është raportuar që në vitin 1997.
Prania e dobishme u konfirmua në Debian 12/13, Ubuntu 23.04/23.10 dhe Fedora 37-39. Funksionaliteti i eksploitit për të fituar të drejtat root nga një përdorues pa privilegje u demonstruar në një ambient të plotë të azhurnuar të Fedora 38 me të gjitha mekanizmat mbrojtës të përfshira në konfigurim për default. Vulnerabiliteti mund të eksplorohet vetëm lokal, pasi kërkon kalimin e më shumë se 1024 byte përmes parametrave argv[0] ose argumentit ident në funksionin openlog().
Korrigjimi i vulnerabilitetit u përfshi disa orë më parë në kodin burimor të Glibc dhe do të përfshihet në azhurnimin e nesërm të Glibc 2.39, së bashku me korrigjimin e dy vulnerabiliteteve të tjera (CVE-2023-6779, CVE-2023-6780), gjithashtu që prekin kodin __vsyslog_internal() dhe që çojnë në mbipërmbushje të buffers. Për më tepër, kompania Qualys paralajmëroi për identifikimin e mbipërmbushjes së buffers në implementimin e funksionit qsort(), e cila nuk ishte klasifikuar nga zhvilluesit e Glibc si një vulnerabilitet, pasi shfrytëzimi kërkon përdorimin e një funksioni krahasues jo tipik, që kthen diferencën e parametrave të krahasuar.
Statusi i zgjidhjes sĂ« vulnerabiliteteve nĂ« shpĂ«rndarjet mund tĂ« vlerĂ«sohet nĂ« kĂ«to faqe: Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. PĂ«r tĂ« testuar ndjeshmĂ«rinĂ« e sistemit ndaj vulnerabilitetit, mund tĂ« pĂ«rdorni komandĂ«n e mĂ«poshtme: $ (exec -a "`printf â28000xâ 1`" /usr/bin/su < /dev/null)
Burimi: opennet.ru
