Im Linux-Kernel wurden zwei Schwachstellen entdeckt, die es Benutzern dennoch ermöglichten, ihre Berechtigungen zu erhöhen 

Verwundbarkeit

Wenn sie ausgenutzt werden, können diese Schwachstellen Angreifern den unbefugten Zugriff auf vertrauliche Informationen ermöglichen oder allgemein Probleme verursachen

Vor ein paar Tagen brachte die Nachricht das Es wurden zwei Schwachstellen entdeckt die Subsysteme der Linux Kernel, Netfilter und io_uring, die es einem lokalen Benutzer ermöglichen, seine Berechtigungen auf dem System zu erhöhen.

Der erste ist die Verletzlichkeit. (CVE-2023-32233), der im Netfilter-Subsystem erkannt wurde und verursacht durch Use-After-Free-Speicherzugriff im Modul nf_tables, der den Betrieb des Paketfilters nftables sicherstellt.

Dieser Fehler liegt daran, dass Netfilter nf_tables die Aktualisierung seiner Konfiguration zulässt für Batch-Anfragen, die gruppiert werden mehrere Grundoperationen bei atomaren Transaktionen.

Das Problem wurde in verschiedenen Versionen des Linux-Kernels reproduziert, einschließlich Linux 6.3.1 (aktuell stabil) und die Schwachstelle kann ausgenutzt werden, indem speziell gestaltete Anfragen zur Aktualisierung der nftables-Konfiguration gesendet werden. Es wird erwähnt, dass der Angriff Zugriff auf nftables erfordert, der in einem separaten Netzwerk-Namespace erhalten werden kann, wenn Sie über die Rechte CLONE_NEWUSER, CLONE_NEWNS oder CLONE_NEWNET verfügen (wenn Sie beispielsweise einen isolierten Container ausführen können).

Zu diesem Fehler versprach der Forscher, der das Problem identifizierte, die Veröffentlichung detaillierter Informationen und eines Beispiels für einen funktionierenden Exploit, der eine Root-Shell bereitstellt, um eine Woche zu verschieben.

In einem bestimmten Szenario kann eine ungültige Batch-Anfrage einen Vorgang enthalten, der implizit einen vorhandenen anonymen NFT-Satz löscht, gefolgt von einem anderen Vorgang, der versucht, nach dem Löschen auf denselben anonymen NFT-Satz zu reagieren. Im obigen Szenario ist ein Beispiel für den obigen Vorgang das Löschen einer vorhandenen NFT-Regel, die einen anonymen NFT-Satz verwendet. Und ein Beispiel für den letztgenannten Vorgang ist der Versuch, ein Element aus diesem anonymen NFT-Array zu entfernen, nachdem das Array alternativ entfernt wurde. Der letztere Vorgang könnte sogar versuchen, dieses anonyme NFT-Array erneut explizit zu entfernen. 

Wie eingangs bereits erwähnt, ist dies mehrere Tage her und der Exploit sowie die Informationen wurden bereits offengelegt. Den Exploit sowie seine Details finden Sie unter folgendem Link.

Der zweite Fehler wurde erkannt, war die Verwundbarkeit (CVE-2023-2598) in die Implementierung der asynchronen I/O-Schnittstelle io_uring seit Version 5.1 im Linux-Kernel enthalten.

Das Problem wird durch einen Fehler in der Funktion io_sqe_buffer_register verursacht, die den Zugriff auf physischen Speicher außerhalb der Grenzen eines statisch zugewiesenen Puffers ermöglicht. Das Problem tritt nur im 6.3-Zweig auf und wird im nächsten 6.3.2-Update behoben.

Es wird erwähnt, dass die Idee hinter dem ursprünglichen Commit darin besteht, dass man statt großer gepufferter Seiten in einzelne Bvec-Einträge einen einzigen Bvec-Eintrag für alle gepufferten Teile der Seite haben kann. Insbesondere, wenn alle Seiten in der Pufferzuordnung die erste Seitenstruktur und Pufferlänge in einem einzigen Bvec-Eintrag verwenden, anstatt jede Seite einzeln zuzuordnen.

Bvec wird also weit über die einzelne Seite hinausgehen, die es tatsächlich berühren darf. Später ermöglichen uns IORING_OP_READ_FIXED und IORING_OP_WRITE_FIXED das Lesen und Schreiben in den Puffer (dh den Speicher, auf den der BVEC zeigt) nach Belieben. Dies ermöglicht Lese-/Schreibzugriff auf den physischen Speicher hinter der einzigen Seite, die wir tatsächlich haben.

In der Schwachstellenpublikation werden die Schritte zur Fehlerreproduktion erwähnt:

1. Erstellen Sie ein Memfd
2. Fehler einer einzelnen Seite in diesem Dateideskriptor
3. Verwenden Sie MAP_FIXED, um diese Seite wiederholt aufeinanderfolgenden Orten zuzuordnen
4. Registrieren Sie die gesamte Region, die Sie gerade mit dieser Seite gefüllt haben, als
ein fester Puffer mit IORING_REGISTER_BUFFERS
5. Verwenden Sie IORING_OP_WRITE_FIXED, um den Puffer in eine andere Datei zu schreiben
(OOB-Lesen) oder IORING_OP_READ_FIXED, um Daten im Puffer zu lesen (
OOB schreiben).

Abschließend sei noch erwähnt, dass ist schon verfügbar  ein funktionierender Exploit-Prototyp (CVE-2023-2598) zum Testen, sodass Sie Code mit Kernel-Berechtigungen ausführen können.

Verletzlichkeit (CVE-2023-32233) Es wurde im 6.4-rc-Update behoben und Sie können die Behebung der Sicherheitslücke in den Distributionen auf den folgenden Seiten verfolgen: DebianUbuntuGentooRHELFedoraSUSE/openSUSEBogen.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.