CIFSwitch — eine Schwachstelle im CIFS-Subsystem des Linux-Kernels, die es ermöglicht, Root-Rechte zu erlangen.

Details wurden veröffentlicht und ein Exploit für die Schwachstelle CIFSwitch (CVE noch nicht zugewiesen) im CIFS-Kernelmodul und im cifs-utils-Toolkit, der es einem nicht privilegierten Benutzer ermöglicht, Root-Rechte im System zu erlangen. Ein Fix ist nur als Patch verfügbar, der am 16. Mai veröffentlicht und am 19. Mai in den Hauptzweig des Linux-Kernels aufgenommen wurde (korrektive Kernel-Versionen sind noch nicht verfügbar).

Die Schwachstelle betrifft den Code, der die Unterstützung des cifs.spnego-Mechanismus für die Authentifizierung über das SPNEGO-Protokoll (Simple and Protected GSSAPI Negotiation) beim Verbinden mit SMB-Servern gewährleistet. Bei der Verwendung von cifs.spnego zur Ermittlung von Schlüsseln aus Kerberos/SPNEGO ruft der Kernel den cifs.upcall-Handler auf, der vom cifs-utils-Paket bereitgestellt wird und im Benutzermodus mit Root-Rechten ausgeführt wird.

Ein nicht privilegierter Benutzer kann einen Handler aufrufen, indem er eine Anfrage zum Erhalt des Schlüssels „cifs.spnego“ mit einer gefälschten Beschreibung „CIFS SPNEGO“ sendet. Im cifs.upcall-Handler werden keine zusätzlichen Überprüfungen der Richtigkeit der über den Kernel übergebenen Parameter durchgeführt, unter anderem werden vertrauenswürdige Werte der Felder pid, uid, creduid und
upcall_target akzeptiert. Nach der Aktivierung wechselt der Handler cifs.upcall in die Namensräume des Benutzerprozesses, über den die Anfrage gesendet wurde, und sucht, bis die Privilegien zurückgesetzt werden, in der Systemdatenbank NSS (Name Service Switch).

Ein Angreifer kann seinen Prozess in einem separaten Namensraum für Einhängepunkte starten, was dazu führt, dass die Anfrage an NSS in seinem Kontext ausgeführt wird. Um die Schwachstelle auszunutzen, genügt es, eine eigene Konfigurationsdatei /etc/nsswitch.conf und eine Reihe von gefälschten Bibliotheken libnss_*.so.2 innerhalb der vom Angreifer erstellten Umgebung abzulegen. Die Ausführung einer NSS-Anfrage durch den Handler cifs.upcall führt dazu, dass die vom Angreifer eingefügten Bibliotheken mit Root-Rechten geladen werden.

Um die Schwachstelle auszunutzen, muss die Erstellung von Benutzernamensräumen (user namespace) oder von Mount-Namensräumen (mount namespace) erlaubt sein, und das Paket cifs-utils muss auf dem System installiert sein. Distributionen, bei denen die Schwachstelle in der Standardkonfiguration ausgenutzt werden kann:

  • 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

Distributionen, bei denen zur Ausführung des Exploits das Paket cifs-utils installiert werden muss:

  • Ubuntu 18.04/20.04/22.04 Desktop/Server
  • Pop!_OS 22.04 Intel/24.04 Generic
  • Ubuntu 24.04 Desktop minimal/full und Server
  • Debian 11/12/13 netinst standard und 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

Distributionen, bei denen in der Standardkonfiguration Einstellungen angewendet werden, die die Ausnutzung der Schwachstelle durch SELinux oder Apparmor blockieren, selbst wenn das Paket cifs-utils vorhanden ist:

  • 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

Als Umgehungsschutz kann das automatische Laden des cifs-Kernelmoduls blockiert werden:

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

Es ist auch möglich, die Verwendung des user namespace zu verbieten («sysctl -w kernel.unprivileged_userns_clone=0») und die Regel cifs.spnego in den cifs-utils Einstellungen zu entfernen oder zu überschreiben:

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

In der Zwischenzeit wurden am 28. Mai 137 Berichte über Schwachstellen im Linux-Kernel veröffentlicht, und am 27. Mai waren es 277 Berichte.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster