Es wurden zwei Exploits in freiem Zugang entdeckt, die eine bisher unbekannte Schwachstelle im n_gsm-Treiber, der Teil des Linux-Kernels ist, ausnutzen. Die Schwachstelle ermöglicht es einem nicht privilegierten lokalen Benutzer, Code mit Kernel-Rechten auszuführen und seine Privilegien im System zu erhöhen. Es wurde keine CVE-ID zugewiesen. Das Problem bleibt bisher ungelöst.
Der n_gsm-Treiber implementiert das GSM 07.10-Protokoll, das in GSM-Modems zur Multiplexierung von Verbindungen zum seriellen Port verwendet wird. Die Schwachstelle wird durch einen Wettlaufzustand im ioctl-Handler GSMIOC_SETCONF_DLCI verursacht, der zur Aktualisierung der DLCI-Konfiguration (Data Link Connection Identifier) verwendet wird. Durch Manipulation des ioctls kann auf Speicher nach seiner Freigabe (use-after-free) zugegriffen werden.
Der Exploit kann auf Systemen mit Linux-Kernen von Version 5.15 bis 6.5 eingesetzt werden. Zum Beispiel wurde der erfolgreiche Root-Zugriff auf Fedora und Ubuntu 22.04 mit Kernel 6.5 sowie auf Debian 12 mit Kernel 6.1 demonstriert. Ab Kernel 6.6 sind für die Ausnutzung Administratorrechte (CAP_NET_ADMIN) erforderlich. Als Workaround zur Blockierung der Schwachstelle kann das automatische Laden des Kernelmoduls n_gsm verhindert werden, indem folgende Zeile in die Datei /etc/modprobe.d/blacklist.conf eingefügt wird: „blacklist n_gsm“.
Es ist bemerkenswert, dass im Januar Informationen über eine andere Schwachstelle (CVE-2023-6546) im n_gsm-Treiber veröffentlicht wurden, für die ebenfalls ein öffentlicher Exploit verfügbar ist. Diese Schwachstelle überschneidet sich nicht mit dem ersten Problem, obwohl sie ebenfalls durch einen Zugriff auf Speicher nach der Freigabe bei der Arbeit mit der Struktur gsm_dlci im Handler ioctl GSMIOC_SETCONF verursacht wird. Das Problem wurde im August des vergangenen Jahres behoben (die Korrektur ist Teil des Kernels 6.5).
Quelle: opennet.ru
