Eine Schwachstelle im CAN-BCM-Netzwerkprotokoll ermöglichte eine Rechteausweitung im Linux-Kernel 

Gestern Informationen zu einer Schwachstelle im Linux-Kernel wurden veröffentlicht und die bereits als CVE-2021-3609 katalogisiert ist. Diese Schwachstelle ermöglicht einem lokalen Benutzer, seine Berechtigungen auf dem System zu erhöhen aufgrund einer Race Condition bei der Implementierung des CAN-BCM-Protokolls und manifestiert sich in den Versionen 2.6.25 bis 5.13-rc6 des Linux-Kernels.

Das Urteil nutzt weil der Mit dem CAN BCM-Protokoll können Sie Ihren eigenen Nachrichtenmanager registrieren des Area Network (CAN) des Controllers und verbinden Sie es mit einer bestimmten Netzwerkbuchse. Beim Eintreffen einer eingehenden Nachricht wird die Funktion aufgerufen bcm_rx_handler () Ein Angreifer kann eine Race-Bedingung ausnutzen und das Schließen des Netzwerk-Sockets während der Ausführung erzwingen bcm_rx_handler ().

Das Problem tritt auf, wenn die Steckdose geschlossen ist und die Funktion heißt bcm_release (), in dem für Strukturen zugewiesener Speicher freigegeben wird bcm_op und bcm_sock, die im Handler b weiter verwendet werdencm_rx_handler () die noch läuft, so entsteht eine Situation, die zum Zugriff auf einen bereits freigegebenen Speicherblock führt (use-after-free).

Dies ist eine Ankündigung des kürzlich gemeldeten Fehlers (CVE-2021-3609) im CAN BCM-Netzwerkprotokoll im Linux-Kernel von Version 2.6.25 bis Mainline 5.13-rc6.
Die Schwachstelle ist eine Race Condition in net/can/bcm.c, die eine Rechteeskalation auf Root ermöglicht. Das Problem wurde zunächst von syzbot gemeldet und Norbert Slusarek erwies sich als ausnutzbar.

Der Angriff läuft darauf hinaus, zwei CAN-BCM-Sockets zu öffnen und sie an die vcan-Schnittstelle zu binden. Im ersten Connector rufen Sie sendmsg() mit der Anzeige RX_SETUP um den Controller für eingehende CAN-Nachrichten zu konfigurieren und am zweiten Anschluss rufen Sie sendmsg() um eine Nachricht an den ersten Connector zu senden.

Nachdem die Nachricht angekommen ist, der Aufruf bcm_rx_handler() wird ausgelöst und der Angreifer nimmt den richtigen Moment und schließt den ersten Socket, was zur Einführung von führt bcm_release () und der Start der Strukturen bcm_op und bcm_sock, obwohl die Arbeit von bcm_rx_handler () noch nicht fertig.

Durch Manipulation des Inhalts von bcm_sock kann ein Angreifer einen Zeiger auf die Funktion sk-> sk_data_ready (sk) überschreiben, die Ausführung umleiten und mithilfe von rückkehrorientierten Programmiertechniken (ROP) den Parameter modprobe_path überschreiben und seinen Code als Root ausführen lassen .

Bei Verwendung der ROP-Technik versucht der Angreifer nicht, seinen Code zu platzieren in Erinnerung an, aber es funktioniert auf die Stücke von Maschinenanleitung bereits vorhanden in geladenen Bibliotheken, die mit einer Control-Return-Anweisung enden (in der Regel sind dies das Ende der Bibliotheksfunktionen).

Die zum Ausführen eines Angriffs erforderlichen Berechtigungen können von einem nicht privilegierten Benutzer in Containern erworben werden, die auf Systemen mit aktivierten Benutzernamensräumen erstellt wurden. Beispielsweise sind Benutzernamensräume standardmäßig in Ubuntu und Fedora enthalten, aber in Debian und RHEL nicht aktiviert.

Mein Exploit-Versuch konzentriert sich auf Kernel mit Version>= 5.4-rc1 von Commit bf74aa86e111. Ich habe nicht untersucht, ob Kernel älter als 5.4-rc1 mit Tasklets ausgenutzt werden, aber auch ältere Kernel scheinen machbar zu sein. 

Es wird das erwähnt Der Forscher, der die Schwachstelle identifiziert hat, konnte einen Exploit vorbereiten Root-Rechte auf Systemen mit Kernel ab Version 5.4 zu erhalten, einschließlich der Möglichkeit eines erfolgreichen Angriffs auf Ubuntu 20.04.02 LTS.

Die Arbeit des Exploits beschränkt sich darauf, eine Kette von Aufrufen an ähnliche Blöcke ("Gadgets") aufzubauen, um die erforderliche Funktionalität zu erhalten. Der Angriff erfordert Zugriff zum Erstellen von CAN-Sockets und eine konfigurierte vcan-Netzwerkschnittstelle.

Schließlich Es wird erwähnt, dass das Problem weiterhin besteht auf den meisten Distributionen, aber es ist eine Frage von Tagen, bis die entsprechenden Patches veröffentlicht werden.

Wenn Sie mehr darüber erfahren möchtenkönnen Sie konsultieren den folgenden Link.


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.