Avalikustatud on üksikasjad ja eksploiteerimise meetod CIFSwitch haavatavuse (CVE number pole veel määratud) jaoks CIFS tuuma moodulis ja cifs-utils tööriistakomplektis, mis võimaldab ebapädeval kasutajal saada süsteemis root õigusi. Parandus on saadaval ainult patch kujul, mis avaldati 16. mail ja 19. mail võeti see Linuxi tuumate põhivoolu. (korrektsioonide väljalaskmised veel ei ole saadaval).
Haavatavus mõjutab koodi, mis toetab cifs.spnego mehhanismi SPNEGO (Simple and Protected GSSAPI Negotiation) protokolli autentimise jaoks SMB-serverite ühendamisel. Kui cifs.spnego-d kasutatakse Kerberos/SPNEGO võtmete kindlaksmääramiseks, kutsub tuum esile cifs.upcall töötleja, mis on pakett cifs-utils poolt pakutud ja töötab kasutajaruumi õigustega root.
Ebapädev kasutaja võib algatada töötleja kutsumise, saates päringu, mis nõuab võtme saamist «cifs.spnego» vale kirjeldusega «CIFS SPNEGO». cifs.upcall töötlejas ei tehta täiendavaid parameetrite kehtivuse kontrollimisi, mis on edastatud tuuma kaudu, sealhulgas tõlgendatakse usaldusväärsete mistahes pid, uid, creduid väidete väärtusi.
upcall_target. Pärast aktiveerimist läheb CIFS.upcall töödeldes kasutaja protsessi nimedesse, mille kaudu päring saadeti, ja enne privileegide tühistamist otsib süsteemi NSS (Name Service Switch) andmebaasist.
Ründaja võib käivitada oma protsessi eraldi mount-nimedes, mis viib NSS-i päringu teostamiseni tema kontekstis. Haavatavuse ärakasutamiseks on piisav, kui ründaja loodud keskkonnas asub oma konfiguratsioonifail /etc/nsswitch.conf ja komplekti vale raamatukogud libnss_*.so.2. NSS-i päringu täitmine CIFS.upcall töötleja poolt toob kaasa vale raamatukogude laadimise root-õigustega.
Haavatavuse ärakasutamiseks peab süsteem lubama kasutaja nimede (user namespace) või mounter-nimede (mount namespace) loomise, samuti peab süsteemis olema installitud pakett cifs-utils. Jaotised, kus haavatavuse ärakasutamine on võimalik vaikekonfiguratsioonis:
- Linux Mint Cinnamon 21.3/22.3
- CentOS Stream 9 GNOME
- Rocky Linux 9 Workstation
- Kali Linux
- AlmaLinux 9.7 Workstation
- SUSE 15 SP7/SAP 15 SP7/SAP 16
Jaotised, kus exploit'i tööks on vajalik cifs-utils paketi installimine:
- Ubuntu 18.04/20.04/22.04 Desktop/Server
- Pop!_OS 22.04 Intel/24.04 Generic
- Ubuntu 24.04 Desktop minimal/full ja Server
- Debian 11/12/13 netinst standard ja GNOME/KDE/standard/XFCE
- CentOS Stream 9 Cinnamon/KDE/MATE/XFCE
- Rocky Linux 9 KDE/Workstation-Lite
- openSUSE Leap 15.6 GNOME/KDE
- openSUSE Tumbleweed GNOME/KDE
- Rocky Linux 8 GenericCloud
- Oracle Linux 8/9 KVM
- Amazon Linux 2023 KVM
Jaotised, kus vaikimisi konfiguratsioonis rakendatakse seadistusi, mis blokeerivad haavatavuse ekspluateerimise läbi SELinuxi või Apparmori, isegi kui cifs-utils pakett on olemas:
- Ubuntu 26.04 Desktop/Server
- Fedora 40/41/42/43/44 Workstation/Server
- CentOS Stream 10 GNOME/KDE
- Rocky Linux 10 Workstation
- AlmaLinux 10.1 Workstation
- Oracle Linux 10 KVM
- openSUSE Tumbleweed GNOME/KDE
- openSUSE Leap 16.0 OEM GNOME/KDE/Minimal-VM
- SUSE Linux 16
Kaitse ümberhiilimiseks võib blokeerida automaatse cifs mooduli laadimise:
sh -c «printf ‘install cifs /bin/false\n’ > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; true»
Samuti võib keelata user namespace'i kasutamise («sysctl -w kernel.unprivileged_userns_clone=0») ning eemaldada või ületada reegli cifs.spnego cifs-utils seadetes:
cat >/etc/request-key.d/cifs.spnego.conf <‘EOF’
create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF
Samas, 28. mail avaldati 137 haavatavuste raportit Linuxi kernelis, ja 27. mail — 277 raportit.
Allikas: opennet.ru
