CIFSwitch — en sårbarhed i CIFS-subsystemet i Linux-kernen, der giver mulighed for at opnå root-rettigheder

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

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster