Atklāta LPE ievainojamība CIFSwitch Linux CIFS/cifs-utils

Drošības pētnieks Asim Manizada atklāja ievainojamību CIFSwitch — lokāla privileģiju paaugstināšana Linux kodola un lietotāja pakotnes savienojumā cifs-utils. Problēma skar apstrādes ceļu CIFS/SMB Kerberos/SPNEGO upcall, proti, mehānismu, ar kuru CIFS kodola klients pieprasa no lietotāja palīga datus Kerberos autentifikācijai SMB resursu montāžas laikā. Apraksts tika publicēts pēc linux-distros embargo beigu; CVE identifikators publicēšanas brīdī vēl nebija piešķirts.

Ievainojamības būtība ir, ka nepietiekami privileģēts lietotājs varēja izsaukt request_key("cifs.spnego", …) un nodot viltotu atslēgas aprakstu. Normālā scenārijā šādu rindu veido pats CIFS kodola klients: tajā ir informācija par serveri, UID, akreditācijas UID, PID, upcall mērķi un citiem parametriem. Tomēr kodols nepārbaudīja, vai apraksts patiešām nāk no CIFS apakšsistēmas, un cifs.upcall, kuru palaiž root, izmantojot standarta request-key noteikumu, uztvēra šo laukus kā datus, ko izveidojis kodols.

Ievainojamība nav universāla «caurums jebkurā Linux no kastes». Lai to izmantotu, jāpastāv vairākiem nosacījumiem: jābūt ievainojamam kodolam, instalētiem cifs-utils ar cifs.spnego noteikumu, iespējai nepietiekamām lietotājiem izveidot user/mount namespaces, kā arī jābūt neesot bloķēšanai no SELinux, AppArmor vai citas LSM politikas. Ziņojumā oss-security atsevišķi norādīts, ka ievainojamās sistēmās tas nodrošina ceļu no nepietiekamā lokālā lietotāja uz koda izpildi kā root.


Tehniski ķēde veidojas ap to, ka cifs.upcall var pāriet uz nosaukumiem, kas norādīti viltotajā aprakstā, un veikt NSS pieprasījumu pirms privileģiju pilnīgas atcelšanas. Tā rezultātā uzbrucēja kontrolēta vide var ietekmēt NSS moduļa ielādi root procesā. Publiskos aprakstos uzsvērts, ka tas ir tieši loģiska kļūda kodola un lietotāja telpas robežā, nevis klasiskā atmiņas korupcijas ievainojamība.

Labojums kodolā bija neliels: uz cifs.spnego atslēgu tipam tika pievienota pārbaude, kas noraida aprakstus, kurus izveidojis pats CIFS klients ar savām privātajām spnego_cred. Šāds pieejas veids slēdz uzbrukumu klasi bez obligātām sinhronām izmaiņām cifs-utils, lai gan autors atzīmē, ka papildu nostiprināšana lietotāja telpā joprojām ir vēlama.

AlmaLinux ziņoja, ka pamatloģija ir klātesoša visās atbalstītajās AlmaLinux versijās, un AlmaLinux 8, 9, 10 un Kitten 10 tiek uzskatītas par ietekmētām, ja ir uzstādīts cifs-utils. Labotās kodolu versijas ir sagatavotas testing-repozitorijos: AlmaLinux 9 norādīts pakotne kernel-5.14.0-687.5.4.el9_8 vai jaunāka, AlmaLinux 10 — kernel-6.12.0-211.7.4.el10_2 vai jaunāka.

Kā pagaidu pasākums pirms labota kodola uzstādīšanas ieteicams noņemt cifs-utils, ja sistēmā netiek izmantots SMB/CIFS klients, aizliegt cifs moduļa ielādi, pārrakstīt cifs.spnego noteikumu request-key vai atslēgt nepilnvarotos lietotāju namespace. Šie apgriešanas pasākumi var sabojāt Kerberos autentifikāciju CIFS montāžām, tāpēc serveros, kur tiek reāli izmantoti Kerberos autentificēti SMB koplietošanas resursi, tie jāpielieto uzmanīgi.

CIFSwitch ir interesanta arī konteksta atklāšanas dēļ: autors to apraksta kā daudzsoļu ķēžu meklēšanas rezultātu, izmantojot LLM un objektu drošības saikņu grafisku attēlojumu. Bet praktiskais secinājums administratoriem ir pavisam piezemēts: pārbaudīt cifs-utils pieejamību, lietotāju namespaces stāvokli un kodola atjauninājumus, it īpaši sistēmās, kur ir vietējie lietotāji vai konteineru skripti ar paplašinātām namespace iespējām.

Avots: linux.org.ru

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster