Der Sicherheitsforscher Aaron Adams hat einen Use-after-free-Bug im Linux-Kernel gefunden, aufgrund dessen lokale Nutzer sich zum Superuser machen könnten. Der Fehler betrifft die standardmäßig auf den meisten Linux-Systemen aktive Kernel-Komponente NFTables – eine Weiterentwicklung der Linux-eigenen Firewall iptables. Ein Angreifer benötigt für eine erfolgreiche Attacke einen lokalen Nutzer auf dem Zielsystem, der zudem eigene NFTables-Namespaces erstellen können muss. Diese Einstellung ist jedoch standardmäßig zumindest auf aktuellen Ubuntu-Systemen aktiviert. Adams liefert in seiner Mitteilung auf der Mailingliste OSS-Security auch gleich einen Proof-of-Concept-Exploit (PoC) mit. Mit diesem Code-Beispiel könne die Sicherheitslücke auf einem System mit Ubuntu 22.04 erfolgreich für einen Root-Zugriff ausgenutzt werden, erläutert der Sicherheitsforscher. Das konnten wir in eigenen Versuchen jedoch nicht bestätigen. Der Fehler erhielt offenbar aufgrund eines Missverständnisses gleich zwei CVE-IDs, nämlich CVE-2022-1966 und CVE-2022-32250. Die ursprünglich von Red Hat vergebene ID CVE-1022-1966 dürfte sich jedoch durchsetzen. Der Schweregrad in Form eines CVSS-Scores der Lücke ist derzeit noch nicht festgelegt, die Maintainer von Ubuntu und Red Hat stufen ihn jedoch als „hoch“ ein. Die Entwickler des Linux-Kernels haben den Bug im Quellcode bereits behoben, Update-Pakete sind zum Zeitpunkt der Meldung jedoch noch von keiner Distribution veröffentlicht worden. Administratoren von Multi-User-Systemen sollten jedoch schon jetzt handeln, um Angriffe böswilliger Nutzer zu verhindern. Die IT-Spezialisten von Ubuntu erläutern, dass für die eigenen Distributionen zwei sysctl-Kommandos Abhilfe schaffen. Durch diese verlieren Nutzer die Fähigkeit, NFTables-Namespaces zu erstellen, was das Ausnutzen der Sicherheitslücke unterbinden sollte. Zu möglichen Nebenwirkungen schreiben die Autoren von Ubuntu jedoch nichts in ihrer Sicherheitsmeldung:
$ sudo sysctl -w kernel.unprivileged_userns_clone=0
$ echo kernel.unprivileged_userns_clone=0 | sudo tee /etc/sysctl.d/99-disable-unpriv-userns.conf
Da die meisten Systeme derartige Konfigurationsdateien aufweisen, sollte das dort ebenfalls funktionieren. Gegebenenfalls sollten Administratoren nachsehen, ob die Datei /etc/sysctl.d/99-disable-unpriv-userns.conf
vorhanden ist und nötigenfalls die Zeile anpassen.