Im Linux-Kernel wurden mehrere gefährliche Schwachstellen entdeckt, die es einem lokalen Benutzer ermöglichen, seine systemweiten Berechtigungen zu erhöhen. Für alle betroffenen Probleme wurden funktionsfähige Exploit-Prototypen vorbereitet.
- Die Schwachstelle (CVE-2022-0995) im Ereignisverfolgungssubsystem watch_queue führt dazu, dass Daten in Bereiche des Kernspeichers außerhalb des zugewiesenen Puffers geschrieben werden können. Ein Angriff kann von jedem nicht privilegierten Benutzer durchgeführt werden und könnte die Ausführung von eigenen Code mit Kernel-Rechten ermöglichen. Diese Schwachstelle ist in der Funktion watch_queue_set_size() vorhanden und hängt mit dem Versuch zusammen, alle Zeiger in der Liste zu löschen, selbst wenn deren Speicher nicht zugewiesen wurde. Das Problem tritt bei der Kernel-Kompilierung mit der Option „CONFIG_WATCH_QUEUE=y“ auf, die in den meisten Linux-Distributionen verwendet wird.
Die Schwachstelle wurde in einer Änderung behoben, die am 11. März in den Kernel aufgenommen wurde. Die Veröffentlichung von Paketaktualisierungen in den Distributionen kann auf den folgenden Seiten verfolgt werden: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ein Exploit-Prototyp ist bereits öffentlich verfügbar und ermöglicht den Root-Zugriff beim Start in Ubuntu 21.10 mit Kernel 5.13.0-37.

- Eine Sicherheitsanfälligkeit (CVE-2022-27666) in den Kernel-Modulen esp4 und esp6, die ESP-Transformationen (Encapsulating Security Payload) für IPsec implementieren und sowohl für IPv4 als auch IPv6 verwendet werden. Diese Schwachstelle ermöglicht es einem lokalen Benutzer mit normalen Berechtigungen, Objekte im Kernel-Speicher zu überschreiben und seine eigenen Berechtigungen im System zu erhöhen. Das Problem entsteht durch das Fehlen einer Überprüfung der zugewiesenen Speichergröße im Vergleich zu den tatsächlich empfangenen Daten, während die maximale Nachrichtenhöhe die für die Struktur skb_page_frag_refill zugewiesene maximale Speichermenge überschreiten kann.
Die Schwachstelle wurde im Kern am 7. März behoben (bezüglich Version 5.17, 5.16.15 usw.). Informationen über die Veröffentlichung von Paketaktualisierungen in den Distributionen finden Sie auf den folgenden Seiten: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ein funktionierender Exploit-Prototyp, der es einem normalen Benutzer ermöglicht, Root-Zugriff auf Ubuntu Desktop 21.10 in der Standardkonfiguration zu erhalten, wurde bereits auf GitHub veröffentlicht. Es wird behauptet, dass der Exploit mit geringfügigen Änderungen auch in Fedora und Debian funktionieren wird. Interessanterweise wurde der Exploit ursprünglich für den Wettbewerb pwn2own 2022 vorbereitet, aber die Kernel-Entwickler entdeckten und behoben den damit verbundenen Fehler, weshalb beschlossen wurde, Einzelheiten zur Schwachstelle offenzulegen.
- Zwei Schwachstellen (CVE-2022-1015, CVE-2022-1016) im Netfilter-Subsystem im nf_tables-Modul, das die Funktionalität des Paketfilters nftables bereitstellt. Das erste Problem ermöglicht es einem lokalen, nicht privilegierten Benutzer, über den zugewiesenen Puffer im Stack zu schreiben. Das Überlaufen tritt bei der Verarbeitung speziell gestalteter nftables-Ausdrücke auf, die während der Überprüfung der Benutzereingaben-Indices verarbeitet werden, wenn ein Benutzer Zugriff auf die nftables-Regeln hat.
Die Schwachstelle entsteht dadurch, dass die Entwickler davon ausgegangen sind, dass der Wert «enum nft_registers reg» ein Byte ist, während derCompiler bei aktivierten bestimmten Optimierungen gemäß der C89-Spezifikation einen 32-Bit-Wert verwenden kann. Aufgrund dieser Eigenschaft stimmt die bei der Überprüfung und Speicherzuweisung verwendete Größe nicht mit der tatsächlichen Datenmenge in der Struktur überein, was zu einer Überlagerung des Strukturendes mit Zeigern im Stack führt.
Das Problem kann ausgenutzt werden, um eigenen Code auf Kernel-Ebene auszuführen, jedoch ist für einen erfolgreichen Angriff der Zugang zu nftables erforderlich, der in einem separaten Netzwerk-Namensraum (network namespaces) mit den Rechten CLONE_NEWUSER oder CLONE_NEWNET erlangt werden kann (zum Beispiel, wenn isolierte Container gestartet werden können). Die Schwachstelle steht auch in engem Zusammenhang mit den vom Compiler angewendeten Optimierungen, die beispielsweise bei der Erstellung im Modus «CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y» aktiviert werden. Die Ausnutzung der Schwachstelle ist ab Linux-Kernel 5.12 möglich.
Die zweite Schwachstelle in netfilter wird durch den Zugriff auf einen bereits freigegebenen Speicherbereich (use-after-free) im Handler nft_do_chain verursacht und kann zu einer Leckage uninitialisierter Speicherbereiche des Kernels führen, die durch Manipulationen mit nftables-Ausdrücken gelesen werden können. Dadurch können beispielsweise Adresszeiger identifiziert werden, was bei der Entwicklung von Exploits für andere Schwachstellen nützlich sein kann. Die Ausnutzung dieser Schwachstelle ist ab Kernel Linux 5.13 möglich.
Die Schwachstellen wurden in den heutigen Korrektur-Updates der Kernel-Versionen 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 und 4.9.309 behoben. Informationen über die Veröffentlichung von Paketupdates in den verschiedenen Distributionen finden Sie auf diesen Seiten: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Der forschende Entdecker hat bekannt gegeben, dass er funktionierende Exploits für beide Schwachstellen vorbereitet hat, die in wenigen Tagen veröffentlicht werden, nachdem die Distributionen die Kernel-Paketupdates bereitgestellt haben.
Quelle: opennet.ru

