Objavljena je LPE ranjivost CIFSwitch u Linux CIFS/cifs-utils

Stručnjak za sigurnost Asim Manizada otkrio ranjivost CIFSwitch — lokalno podizanje privilegija u kombinaciji s Linux jezgrom i korisničkim paketom cifs-utils. Problem se odnosi na putanju obrade CIFS/SMB Kerberos/SPNEGO upcall, što je mehanizam kroz koji CIFS klijent jezgre traži od korisničkog helpera podatke za Kerberos autentifikaciju prilikom montiranja SMB resursa. Opis je objavljen nakon isteka embarga linux-distros; identifikator CVE u trenutku objave još nije bio dodeljen.

Bit ranjivosti je u tome, da je neprivilegirani korisnik mogao pozvati request_key("cifs.spnego", …) i proslijediti lažni opis ključa. U normalnom scenariju, takav niz bi trebao formirati sam CIFS klijent jezgre: on sadrži informacije o serveru, UID, UID verifikaciju, PID, svrhu upcall i druge parametre. Međutim, jezgra nije provjeravala da li je opis zaista došao iz CIFS podsistema, dok je cifs.upcall, pokrenut kao root kroz standardno pravilo request-key, verovao ovim poljima kao podacima koje je stvorila jezgra.

Ranjivost nije univerzalna «rupa u bilo kojem Linux-u out-of-the-box». Za eksploataciju nekoliko uslova mora biti ispunjeno: prisustvo ranjive jezgre, instaliran cifs-utils s pravilom cifs.spnego, mogućnost neprivilegiranih korisnika da kreiraju user/mount namespaces, kao i odsustvo blokada od strane SELinux-a, AppArmor-a ili druge LSM politike. U obaveštenju na oss-security posebno je navedeno da na ranjivim sistemima to omogućava put od neprivilegiranog lokalnog korisnika do izvršavanja koda kao root.


Tehnički lanac se gradi oko toga, da cifs.upcall može preći u imenske prostore navedene u lažnom opisu, i izvršiti NSS upit pre konačnog brisanja privilegija. Kao rezultat, okruženje koje kontroliše napadač može uticati na učitavanje NSS modula od strane root procesa. U javnim opisima se naglašava da je ovo logička greška na granici jezgre i korisničkog prostora, a ne klasična ranjivost korupcije memorije.

Ispravka u jezgri se pokazala malom obimom: za tipove ključeva cifs.spnego dodana je provala koja odbacuje opise koji nisu stvoreni od strane samog CIFS klijenta s njegovim privatnim spnego_cred. Ovaj pristup zatvara klasu napada bez obaveznog sinkroniziranja promjena u cifs-utils, iako autor napominje da je dodatno pojačanje korisničkog prostora još uvek poželjno.

AlmaLinux je obavestio, da je osnovna logika prisutna u svim podržanim izdanjima AlmaLinux-a, a AlmaLinux 8, 9, 10 i Kitten 10 se smatraju zahvaćenima ako je cifs-utils instaliran. Ispravljena jezgra su pripremljena u testing-repozitorijima: za AlmaLinux 9 je označen paket kernel-5.14.0-687.5.4.el9_8 ili noviji, za AlmaLinux 10 — kernel-6.12.0-211.7.4.el10_2 ili noviji.

Kao privremena mjera do instalacije ispravljenog kernela preporučuje se uklanjanje cifs-utils, ako SMB/CIFS-klijent na sustavu nije u upotrebi, zabraniti učitavanje cifs modula, prebrisati pravilo cifs.spnego u request-key ili isključiti neprivilegirane user namespaces. Ove zaobilaženja mogu pokvariti Kerberos-autentifikaciju za CIFS-montaže, stoga ih treba primjenjivati oprezno na serverima gdje se stvarno koriste Kerberos-authenticated SMB-šerpe.

CIFSwitch je zanimljiv i kontekstom otkrivanja: autor je opisuje kao rezultat pretrage višestepene lance koristeći LLM i grafičko predstavljanje veza između objekata sigurnosti. No, praktičan zaključak za administratore je sasvim pragmatičan: provjeriti prisutnost cifs-utils, stanje user namespaces i ažuriranja kernela, posebno na sustavima gdje postoje lokalni korisnici ili skripte kontejnera s proširenim mogućnostima namespaces.

Izvor: linux.org.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster