Byly zveřejněny podrobnosti a exploit pro zranitelnost CIFSwitch (CVE zatím nebylo přiděleno) v modulu jádra CIFS a nástroje cifs-utils, umožňující neoprávněnému uživateli získat práva root v systému. Oprava je dostupná pouze ve formě patch, který byl zveřejněn 16. května a 19. května byl přijat do hlavní větve jádra Linux (opravné verze jádra zatím nejsou dostupné).
Zranitelnost se týká kódu, který poskytuje podporu mechanismu cifs.spnego pro provádění autentizace protokolem SPNEGO (Simple and Protected GSSAPI Negotiation) při připojení k SMB serverům. Při použití cifs.spnego pro získání klíčů z Kerberos/SPNEGO jádro vyvolává zpracovatel cifs.upcall, poskytovaný balíčkem cifs-utils a vykonávaný v uživatelském prostoru s právy root.
Neoprávněný uživatel může iniciovat vyvolání zpracovatele odesláním žádosti, která vyžaduje získání klíče „cifs.spnego“, s podvodným popisem „CIFS SPNEGO“. V zpracovateli cifs.upcall se neprovádějí žádné dodatečné kontroly platnosti parametrů, které jsou předány jádru, a mimo jiné bere v úvahu důvěryhodné hodnoty polí pid, uid, creduid a
upcall_target. Po aktivaci se zpracovatel cifs.upcall přepne do prostorů jmen uživatelského procesu, ze kterého byla žádost odeslána, a do resetování privilegií provádí vyhledávání v systémové databázi NSS (Name Service Switch).
Útočník může spustit svůj proces v samostatném prostoru jmen montážních bodů, což povede k provedení požadavku na NSS v jeho kontextu. Pro exploitaci zranitelnosti stačí vytvořit v prostředí útočníka vlastní konfigurační soubor /etc/nsswitch.conf a sadu podvržených knihoven libnss_*.so.2. Provádění NSS dotazu zpracovatelem cifs.upcall povede k načtení podvržených knihoven útočníka s právy root.
Pro exploitaci zranitelnosti musí být v systému povoleno vytváření prostorů jmen identifikátorů uživatelů (user namespace) nebo montážních bodů (mount namespace), a také je vyžadován nainstalovaný balíček cifs-utils. Distribuce, ve kterých je možnost exploitace zranitelnosti v konfiguraci podle výchozího nastavení:
- 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
Distribuce, pro které je k provozu exploitů vyžadováno nainstalování balíčku cifs-utils:
- Ubuntu 18.04/20.04/22.04 Desktop/server
- Pop!_OS 22.04 Intel/24.04 Generic
- Ubuntu 24.04 Desktop minimal/full a server
- Debian 11/12/13 netinst standard a 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
Distribuce, u kterých jsou ve výchozím nastavení použita nastavení blokující využití zranitelnosti přes SELinux nebo Apparmor, i při přítomnosti balíčku cifs-utils:
- 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
Jako obranou lze zablokovat automatické načítání modulu jádra cifs:
sh -c «printf ‘install cifs /bin/false\n’ > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; true»
Také můžete zakázat používání user namespace (‚sysctl -w kernel.unprivileged_userns_clone=0‘) a odstranit nebo předefinovat pravidlo cifs.spnego v nastavení cifs-utils:
cat >/etc/request-key.d/cifs.spnego.conf <‘EOF’
create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF
Mezitím bylo 28. května zveřejněno 137 zpráv o zranitelnostech v jádru Linux, a 27. května 277 zpráv.
Zdroj: opennet.ru
