Im Linux-Kernel wurden mehrere schwerwiegende Sicherheitsanfälligkeiten entdeckt, die es einem lokalen Benutzer ermöglichen, seine Berechtigungen im System zu erhöhen. Für alle betroffenen Probleme wurden funktionale Exploit-Prototypen vorbereitet.
- Die Sicherheitsanfälligkeit (CVE-2022-0995) im Ereignis-Tracking-Subsystem watch_queue führt zu einer Datenübertragung in den Kernel-Speicher außerhalb des zugewiesenen Puffers. Ein Angreifer kann dies ausführen, ohne privilegierte Berechtigungen und kann eigenen Code mit Kernel-Rechten ausführen. Die Schwachstelle tritt in der Funktion watch_queue_set_size() auf und ist mit dem Versuch verbunden, alle Pointer in der Liste zu löschen, selbst wenn kein Speicher für sie zugewiesen wurde. Das Problem tritt auf, wenn der Kernel mit der Option "CONFIG_WATCH_QUEUE=y" kompiliert wird, die in den meisten Linux-Distributionen verwendet wird.
Die Sicherheitsanfälligkeit wurde in einer Änderung behoben, die am 11. März in den Kernel eingefügt wurde. Informationen zur 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 ist bereits öffentlich verfügbar und erlaubt den Root-Zugriff, wenn er unter Ubuntu 21.10 mit dem Kernel 5.13.0-37 ausgeführt wird.

- Die Sicherheitsanfälligkeit (CVE-2022-27666) in den Kernel-Modulen esp4 und esp6, die ESP-Transformationen (Encapsulating Security Payload) für IPsec umsetzen, die bei der Verwendung von IPv4 und IPv6 zum Einsatz kommen. Diese Schwachstelle ermöglicht es einem lokalen Benutzer mit regulären Berechtigungen, Objekte im Kernel-Speicher zu überschreiben und seine Berechtigungen im System zu erhöhen. Das Problem entsteht aus der fehlenden Überprüfung der zugewiesenen Speichergröße und der tatsächlich erhaltenen Daten, während die maximale Nachrichtengröße die maximale für die Struktur skb_page_frag_refill zugewiesene Speichermenge überschreiten könnte.
Die Sicherheitsanfälligkeit wurde im Kernel am 7. März behoben (behebt in 5.17, 5.16.15 usw.). Informationen zur 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 einem normalen Benutzer Root-Zugriff bei einer Standardkonfiguration von Ubuntu Desktop 21.10 ermöglicht, wurde bereits auf GitHub veröffentlicht. Es wird behauptet, dass der Exploit auch mit geringen Änderungen in Fedora und Debian funktionsfähig sein wird. Bemerkenswert ist, dass der Exploit ursprünglich für den Wettbewerb pwn2own 2022 vorbereitet wurde, aber die Kernel-Entwickler einen damit verbundenen Fehler entdeckten und behoben, weshalb entschieden wurde, die Einzelheiten der 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, einen Schreibzugriff außerhalb des zugewiesenen Puffers auf dem Stack zu erlangen. Überlauf tritt auf, wenn bestimmte umgestaltete nftables-Ausdrücke bearbeitet werden, die während der Überprüfung von vom Benutzer festgelegten Indizes verarbeitet werden, der Zugriff auf die nftables-Regeln hat.
Die Schwachstelle entsteht, weil die Entwickler angenommen hatten, dass der Wert "enum nft_registers reg" ein Byte beträgt, während der Compiler bei Aktivierung bestimmter Optimierungen gemäß der C89-Spezifikation einen 32-Bit-Wert verwenden kann. Aufgrund dieser Besonderheit stimmt die bei Überprüfungen und Speicherzuweisungen verwendete Größe nicht mit der tatsächlichen Größe der Daten in der Struktur überein, was dazu führt, dass der Abschluss der Struktur auf die Zeiger im Stack überlappt.
Das Problem kann ausgenutzt werden, um eigenen Code auf Kernel-Ebene auszuführen, jedoch ist für einen erfolgreichen Angriff der Zugriff auf nftables erforderlich, der in einem separaten Netzwerk-Namensraum (network namespaces) mit CLONE_NEWUSER- oder CLONE_NEWNET-Rechten (zum Beispiel durch die Möglichkeit, einen isolierten Container zu starten) erlangt werden kann. Die Schwachstelle steht auch in engem Zusammenhang mit den vom Compiler verwendeten Optimierungen, die beispielsweise beim Bau im "CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y"-Modus aktiviert werden. Die Ausnutzung der Schwachstelle ist ab Kernel Linux 5.12 möglich.
Die zweite Schwachstelle in Netfilter wird durch den Zugriff auf bereits freigegebenen Speicher (use-after-free) im Handler nft_do_chain verursacht und kann zu einem Leck nicht initialisierter Kernel-Speicherbereiche führen, die durch Manipulationen mit nftables-Ausdrücken gelesen werden können. Dies kann beispielsweise zur Bestimmung von Zeigeradressen verwendet werden, um Exploits für andere Schwachstellen zu entwickeln. Die Ausnutzung der Schwachstelle ist ab Kernel Linux 5.13 möglich.
Die Schwachstellen wurden in den heutigen Korrekturupdates des Kernels 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. Die Veröffentlichung der Paketupdates in den Distributionen kann auf den folgenden Seiten verfolgt werden: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Der Forscher, der die Probleme entdeckt hat, erklärte, dass er funktionierende Exploits für beide Schwachstellen vorbereitet hat, die in einigen Tagen veröffentlicht werden sollen, nachdem die Distributionen die Paketupdates mit dem Kernel herausgegeben haben.
Quelle: opennet.ru

