Im Linux-Kernel wurden ausnutzbare Schwachstellen in nf_tables, watch_queue und IPsec identifiziert

Im Linux-Kernel wurden mehrere gefährliche Schwachstellen identifiziert, die es einem lokalen Benutzer ermöglichen, seine Berechtigungen im System zu erhöhen. Für alle betrachteten Probleme wurden funktionierende Prototypen von Exploits vorbereitet.

  • Eine Schwachstelle (CVE-2022-0995) im watch_queue-Ereignisverfolgungssubsystem ermöglicht das Schreiben von Daten in einen Out-of-Bounds-Puffer im Kernel-Speicher. Der Angriff kann von jedem unprivilegierten Benutzer ausgeführt werden und dazu führen, dass sein Code mit Kernel-Rechten ausgeführt wird. Die Sicherheitslücke besteht in der Funktion watch_queue_set_size() und ist mit dem Versuch verbunden, alle Zeiger in einer Liste zu löschen, auch wenn ihnen kein Speicher zugewiesen wurde. Das Problem tritt beim Erstellen des Kernels mit der Option „CONFIG_WATCH_QUEUE=y“ auf, die in den meisten Linux-Distributionen verwendet wird.

    Die Schwachstelle wurde durch eine am 11. März hinzugefügte Kernel-Änderung behoben. Sie können die Veröffentlichungen von Paketaktualisierungen in Distributionen auf diesen Seiten verfolgen: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Der Exploit-Prototyp ist bereits öffentlich verfügbar und ermöglicht Ihnen Root-Zugriff bei der Ausführung unter Ubuntu 21.10 mit Kernel 5.13.0-37.

    Im Linux-Kernel wurden ausnutzbare Schwachstellen in nf_tables, watch_queue und IPsec identifiziert

  • Sicherheitslücke (CVE-2022-27666) in den Kernelmodulen esp4 und esp6 bei der Implementierung von ESP-Transformationen (Encapsulated Security Payload) für IPsec, die bei der Verwendung von IPv4 und IPv6 verwendet werden. Die Sicherheitslücke ermöglicht es einem lokalen Benutzer mit normalen Rechten, Objekte im Kernel-Speicher zu überschreiben und seine Rechte auf dem System zu erweitern. Das Problem wird durch einen fehlenden Abgleich zwischen der zugewiesenen Speichergröße und den tatsächlich empfangenen Daten verursacht, da die maximale Nachrichtengröße die maximale Speichergröße überschreiten könnte, die für die Struktur skb_page_frag_refill zugewiesen ist.

    Die Schwachstelle wurde am 7. März im Kernel behoben (behoben in 5.17, 5.16.15 usw.). Sie können die Veröffentlichungen von Paketaktualisierungen in Distributionen auf diesen Seiten verfolgen: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Ein funktionierender Prototyp des Exploits, 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 auf Fedora und Debian funktionieren wird. Bemerkenswert ist, dass der Exploit ursprünglich für den Wettbewerb pwn2own 2022 vorbereitet wurde, die Kernel-Entwickler jedoch einen damit verbundenen Fehler identifizierten und korrigierten, sodass beschlossen wurde, die Details der Schwachstelle offenzulegen.

  • Zwei Schwachstellen (CVE-2022-1015, CVE-2022-1016) im Netfilter-Subsystem im nf_tables-Modul, das den Betrieb des nftables-Paketfilters gewährleistet. Das erste Problem ermöglicht es einem lokalen, nicht privilegierten Benutzer, einen Schreibvorgang außerhalb der zulässigen Grenzen in einen zugewiesenen Puffer auf dem Stapel durchzuführen. Ein Überlauf tritt auf, wenn nftables-Ausdrücke verarbeitet werden, die auf eine bestimmte Weise formatiert sind und während der Prüfphase von Indizes verarbeitet werden, die von einem Benutzer angegeben werden, der Zugriff auf nftables-Regeln hat.

    Die Sicherheitslücke wird durch die Tatsache verursacht, dass die Entwickler implizierten, dass der Wert von „enum nft_registers reg“ ein einzelnes Byte sei, obwohl der Compiler bei aktivierten bestimmten Optimierungen gemäß der C89-Spezifikation einen 32-Bit-Wert dafür verwenden konnte . Aufgrund dieser Funktion entspricht die beim Überprüfen und Zuweisen von Speicher verwendete Größe nicht der tatsächlichen Größe der Daten in der Struktur, was dazu führt, dass das Ende der Struktur mit Zeigern auf dem Stapel überlappt wird.

    Das Problem kann ausgenutzt werden, um Code auf Kernel-Ebene auszuführen. Für einen erfolgreichen Angriff ist jedoch Zugriff auf nftables erforderlich, der in einem separaten Netzwerk-Namespace mit CLONE_NEWUSER- oder CLONE_NEWNET-Rechten erlangt werden kann (wenn Sie beispielsweise einen isolierten Container ausführen können). Die Schwachstelle steht auch in engem Zusammenhang mit den vom Compiler verwendeten Optimierungen, die beispielsweise beim Erstellen im Modus „CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y“ aktiviert werden. Das Ausnutzen 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 nft_do_chain-Handler verursacht und kann zu einem Leck nicht initialisierter Bereiche des Kernel-Speichers führen, die durch Manipulationen mit nftables-Ausdrücken gelesen und verwendet werden können. zum Beispiel, um Zeigeradressen während der Entwicklung von Exploits für andere Schwachstellen zu ermitteln. Die Ausnutzung der Schwachstelle ist ab Linux-Kernel 5.13 möglich.

    Die Schwachstellen werden in den heutigen Kernel-Patches 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. Sie können die Veröffentlichungen von Paketaktualisierungen in Distributionen auf diesen Seiten verfolgen: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Der Forscher, der die Probleme identifiziert hat, kündigte die Vorbereitung funktionierender Exploits für beide Schwachstellen an, die in wenigen Tagen veröffentlicht werden sollen, nachdem die Distributionen Updates für die Kernel-Pakete veröffentlicht haben.

Source: opennet.ru

Kommentar hinzufügen