Detaljer afsløret, og en eksploit er offentliggjort for sårbarheden CIFSwitch (CVE er endnu ikke tildelt) i CIFS-kernemodulet og værktøjet cifs-utils, som gør det muligt for en ikke-privilegeret bruger at få root-rettigheder i systemet. Rettelsen er kun tilgængelig som en patch, der blev offentliggjort den 16. maj, og blev accepteret i den primære kernelgren den 19. maj (korrektiverne er endnu ikke tilgængelige).
Sårbarheden påvirker koden, der understøtter cifs.spnego-mekanismen til godkendelse via SPNEGO-protokollen (Simple and Protected GSSAPI Negotiation) ved forbindelse til SMB-servere. Når der anvendes cifs.spnego til at bestemme nøgler fra Kerberos/SPNEGO, kalder kernen cifs.upcall-handleren, der leveres med cifs-utils-pakken og udføres i brugerens rum med root-rettigheder.
En ikke-privilegeret bruger kan initiere et opkald til handleren ved at sende en anmodning, der kræver en nøgle "cifs.spnego", med en falsk beskrivelse "CIFS SPNEGO". I cifs.upcall-handleren udføres der ikke yderligere kontrollere af parametre, der sendes via kernen; blandt andet betragtes værdierne for felterne pid, uid, creduid og
upcall_target som troværdige. Når handleren aktiveres, skifter cifs.upcall til navnerummet for den brugerproces, som anmodningen blev sendt fra, og søger i systemets NSS (Name Service Switch) før privilegierne nulstilles.
Angriberen kan starte sin proces i et separat navnerum for monteringspunkter, hvilket fører til, at NSS-anmodningen udføres i dens kontekst. For at udnytte sårbarheden er det nok at placere sin egen konfigurationsfil /etc/nsswitch.conf og et sæt falske biblioteker libnss_*.so.2 i det af angreberen skabte miljø. Udførelsen af NSS-anmodningen af cifs.upcall-handleren vil resultere i indlæsning af de angrebsvendte biblioteker med root-rettigheder.
For at udnytte sårbarheden skal der være tilladelse til at oprette bruger-id-navnerum (user namespace) eller monteringspunkter (mount namespace) i systemet, samt at cifs-utils-pakken skal være installeret på systemet. Distributioner, hvor sårbarheden kan udnyttes i standardkonfigurationen:
- 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
Distributioner, hvor installationen af cifs-utils-pakken er nødvendig for at udnytte:
- Ubuntu 18.04/20.04/22.04 Desktop/Server
- Pop!_OS 22.04 Intel/24.04 Generic
- Ubuntu 24.04 Desktop minimal/full og Server
- Debian 11/12/13 netinst standard og 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
Distributioner, der som standard har indstillinger, der blokerer for udnyttelse af sårbarhed gennem SELinux eller Apparmor, selv med cifs-utils-pakken installeret:
- 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
Som en omgåelse af beskyttelse kan du blokere for automatisk indlæsning af cifs-kernelmodulet:
sh -c «printf ‘install cifs /bin/false\n’ > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; true»
Det er også muligt at forbyde brug af user namespace (»sysctl -w kernel.unprivileged_userns_clone=0«) og fjerne eller omdefinere cifs.spnego-reglen i cifs-utils-indstillingerne:
cat >/etc/request-key.d/cifs.spnego.conf <‘EOF’
create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF
Mens den 28. maj blev der offentliggjort 137 rapporter om sårbarheder i Linux-kernen, og den 27. maj - 277 rapporter.
Kilde: opennet.ru
