CIFSwitch — en sårbarhet i CIFS-underdelen av Linux-kärnan som möjliggör att få root-rettigheter

Detaljer har avslöjats och en exploitering har publicerats för sårbarheten CIFSwitch (CVE har ännu inte tilldelats) i CIFS-kärnmodulen och cifs-utils-verktygssatsen, som tillåter en icke-privilegierad användare att få root-rettigheter i systemet. En lösning finns endast som en patch, som publicerades den 16 maj och godkändes den 19 maj i huvudgrenen av Linux-kärnan (fixade kärnutgåvor är fortfarande inte tillgängliga).

Sårbarheten påverkar koden som stödjer mekanismen cifs.spnego för att autentisera via SPNEGO-protokollet (Simple and Protected GSSAPI Negotiation) vid anslutning till SMB-servrar. Vid användning av cifs.spnego för att hämta nycklar från Kerberos/SPNEGO anropar kärnan cifs.upcall-hanteraren, som tillhandahålls av cifs-utils-paketet och körs i användarrummet med root-rettigheter.

En icke-privilegierad användare kan initiera ett anrop av hanteraren genom att skicka en begäran som kräver nyckeln "cifs.spnego", med en förfalskad beskrivning "CIFS SPNEGO". I cifs.upcall-hanteraren utförs inga ytterligare valideringskontroller för de parametrar som skickas via kärnan, bland annat uppfattar den pålitliga värdena för fälten pid, uid, creduid och
upcall_target. När hanteraren aktiveras växlar cifs.upcall till användarprocessens namnområde från vilket begäran skickades, och innan privilegierna återställs utförs en sökning i systemdatabasen NSS (Name Service Switch).

En angripare kan starta sin process i ett separat namnområde för monteringspunkter, vilket leder till att en NSS-förfrågan görs i dess kontext. För att utnyttja sårbarheten räcker det med att placera sin egen konfigurationsfil /etc/nsswitch.conf och en uppsättning förfalskade bibliotek libnss_*.so.2 inom det angriparens skapade miljön. En NSS-förfrågan från cifs.upcall-hanteraren leder till att de förfalskade biblioteken laddas med root-rettigheter.

För att utnyttja sårbarheten bör systemet tillåta skapande av användaridentifieringsnamnområden (user namespace) eller monteringsnamnområden (mount namespace), och cifs-utils-paketet måste vara installerat i systemet. Distributioner där sårbarheten kan utnyttjas med standardkonfiguration:

  • 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 där installation av paketet cifs-utils krävs för att exploatören ska fungera:

  • Ubuntu 18.04/20.04/22.04 Desktop/Server
  • Pop!_OS 22.04 Intel/24.04 Generic
  • Ubuntu 24.04 Desktop minimal/full och Server
  • Debian 11/12/13 netinst standard och 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 där de standardinställningar som blockerar utnyttjande av sårbarheter genom SELinux eller Apparmor används, även med paketet 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

Som en workaround kan man blockera automatisk laddning av cifs-kärnmodulen:

sh -c "printf 'install cifs /bin/false\n' > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; true"

Man kan också förbjuda användning av user namespace ("sysctl -w kernel.unprivileged_userns_clone=0") och ta bort eller åsidosätta regeln cifs.spnego i inställningarna för cifs-utils:

cat >/etc/request-key.d/cifs.spnego.conf <'EOF'
create cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF

Under tiden har 137 rapporter om sårbarheter i Linux-kärnan publicerats den 28 maj, och 277 rapporter den 27 maj.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster