Turvauuringute spetsialist Asim Manizada avastas haavatavuse CIFSwitch â kohalik tĂ”us Ă”igustes Linuxi ydre ja kasutaja paketi vahel cifs-utils. Probleem puudutab töötlemisteed CIFS/SMB Kerberos/SPNEGO upcall, ehk mehhanismi, mille kaudu CIFS-i ydre kĂŒsib kasutaja helper'ilt Kerberos autentimise andmeid SMB ressursside mountimise ajal. Kirjeldus avaldati pĂ€rast linux-distros embargo lĂ”ppu; avaldamise ajal ei olnud CVE identifikaator veel mÀÀratud.
Haavatavuse tuum seisneb selles, et mitteprivilegeeritud kasutaja sai kutsuda request_key("cifs.spnego", âŠ) ja edastada vale vĂ”tme kirjelduse. Tavasena peaks sellise rea genereerima ise CIFS-i ydre: see sisaldab teavet serveri, UID, credential UID, PID, upcall'i sihtmĂ€rkide ja muude parameetrite kohta. Siiski ei kontrollinud ydre, et kirjeldus pĂ€rines tĂ”epoolest CIFS alamĂŒsteemist, ja cifs.upcall, mis kĂ€ivitati root'i kaudu standardse request-key reeglina, usaldas neid vĂ€lju kui ydre poolt loodud andmeid.
Haavatavus ei ole universaalne âauk igas Linuxi sĂŒsteemisâ. Selle Ă€ra kasutamiseks peavad olema olemas mitmed tingimused: haavatava ydre olemasolu, installitud cifs-utils koos cifs.spnego reegliga, vĂ”imalus mitteprivilegeeritud kasutajatel luua user/mount namespaces, samuti SELinux, AppArmor vĂ”i muu LSM poliitika puudumine. Oss-security sĂ”numis on eraldi mainitud, et haavatavates sĂŒsteemides avab see tee mitteprivilegeeritud kohalikule kasutajale root'i Ă”igustega koodi tĂ€itmise.
Tehniliselt ehitatakse ahel ĂŒmber selle, et cifs.upcall vĂ”ib liikuda vale kirjelduse korral tehtud nimedesse ja tĂ€ita NSS-pĂ€ringu enne privileegide tĂ€ielikku tagastamist. Selle tulemusena vĂ”ib rĂŒndaja kontrollitud keskkond mĂ”jutada NSS mooduli laadimist root-protsessi poolt. Avalikes kirjeldustes rĂ”hutatakse, et see on tĂ”epoolest loogiline viga ydre ja kasutaja ruumi piiril, mitte klassikaline mĂ€lu rikkumise haavatavus.
Ydre parandamine osutus mahult vĂ€ikseks: cifs.spnego vĂ”tmetĂŒĂŒpide jaoks lisati kontroll, mis kĂ”rvaldab kirjeldused, mis ei olnud loodud CIFS-i ydre enda privaatsete spnego_cred'i poolt. Selline lĂ€henemine sulgeb rĂŒnnakute klassi ilma cifs-utils'i kohustuslike sĂŒnkroonsete muudatusteta, kuigi autor rĂ”hutab, et tĂ€iendav user space'i tugevdamine on endiselt soovitatav.
AlmaLinux teatas, et aluse loogika on saadaval kĂ”igis toetatavates AlmaLinuxi vĂ€ljaannetes, samas kui AlmaLinux 8, 9, 10 ja Kitten 10 peetakse mĂ”jutatuks, kui cifs-utils on installitud. PatĆĄeeritud kernlid on ette valmistatud testimisrepoos: AlmaLinux 9 jaoks on nĂ€idatud pakett kernel-5.14.0-687.5.4.el9_8 vĂ”i uuem, AlmaLinux 10 jaoks â kernel-6.12.0-211.7.4.el10_2 vĂ”i uuem.
Ajutiste meetmetena enne parandatud kernli installimist soovitatakse eemaldada cifs-utils, kui SMB/CIFS-klienti sĂŒsteemis ei kasutata, keelata cifs mooduli laadimine, muuta cifs.spnego reeglit request-key-s vĂ”i keelata privileegita kasutaja nimeta. Need ringi hiilimismeetmed vĂ”ivad rikkuda Kerberose autentimise CIFS-monteeringutele, seega tuleks nende rakendamist ettevaatlikult kĂ€sitleda serverites, kus tĂ”eliselt kasutatakse Kerberos-autoriseeritud SMB-jagat.
CIFSwitch on huvitav ka avastamise konteksti tĂ”ttu: autor kirjeldab seda kui tulemust, mis tuleneb mitmeastmeliste ahelate otsimisest LLM-i ja objekti turvaelementide sidemete graafilise esitluse abil. Kuid praktiline jĂ€reldus administraatoritele on ĂŒsna maine: kontrollida cifs-utils olemasolu, kasutaja nimeta staatust ja kernli vĂ€rskendusi, eriti sĂŒsteemides, kus on kohalikke kasutajaid vĂ”i konteineritooted koos laiendatud nimeta vĂ”imalustega.
Allikas: linux.org.ru
