0-Day-Schwachstelle im n_gsm-Treiber, die die Codeausführung auf Linux-Kernel-Ebene ermöglicht

Im öffentlichen Bereich wurden zwei Exploits entdeckt, die eine bisher unbekannte Schwachstelle im n_gsm-Treiber betreffen, der Teil des Linux-Kernels ist. Die Sicherheitslücke ermöglicht es einem unprivilegierten lokalen Benutzer, Code auf Kernel-Ebene auszuführen und seine Berechtigungen auf dem System zu erweitern. Keine CVE-Kennung zugewiesen. Das Problem bleibt vorerst ungelöst.

Der n_gsm-Treiber stellt eine Implementierung des GSM 07.10-Protokolls bereit, das in GSM-Modems zum Multiplexen von Verbindungen zum seriellen Port verwendet wird. Die Sicherheitslücke ist auf eine Race-Bedingung im ioctl-Handler GSMIOC_SETCONF_DLCI zurückzuführen, der zum Aktualisieren der DLCI-Konfiguration (Data Link Connection Identifier) ​​verwendet wird. Durch Manipulationen mit ioctl können Sie nach der Freigabe Speicherzugriff erreichen (use-after-free).

Der Exploit kann auf Systemen mit Linux-Kernel 5.15 bis 6.5 genutzt werden. Erfolgreicher Root-Zugriff wurde beispielsweise in Fedora, Ubuntu 22.04 mit 6.5-Kernel und Debian 12 mit 6.1-Kernel nachgewiesen. Ab Kernel 6.6 sind für den Betrieb CAP_NET_ADMIN-Berechtigungen erforderlich. Als Workaround zum Blockieren der Schwachstelle können Sie das automatische Laden des n_gsm-Kernelmoduls verhindern, indem Sie die Zeile „blacklist n_gsm“ zur Datei /etc/modprobe.d/blacklist.conf hinzufügen.

Bemerkenswert ist, dass im Januar Informationen über eine weitere Schwachstelle (CVE-2023-6546) im n_gsm-Treiber bekannt wurden, für die ebenfalls ein Exploit öffentlich verfügbar ist. Diese Schwachstelle überschneidet sich nicht mit dem ersten Problem, obwohl sie auch durch Speicherzugriff nach freiem Zugriff beim Arbeiten mit der gsm_dlci-Struktur verursacht wird, jedoch im ioctl-Handler GSMIOC_SETCONF. Das Problem wurde im August letzten Jahres behoben (der Fix war in Kernel 6.5 enthalten).

Source: opennet.ru

Kommentar hinzufügen