Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2023-6931 — CVE-2023-6931 Kernel-Panik-PoC | Kitploit
Tools/GitHubGitHub/k0n9-log/cve-2023-6931
SpeicherforensikSchwachstellenanalyseExploitationLernen & BildungBinary-Exploitation
GitHubk0n9-log/cve-2023-6931

CVE-2023-6931

CVE-2023-6931 Kernel-Panik-PoC

Repository anzeigen
22vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2023-6931

Kernel Panic PoC für CVE-2023-6931

Beschreibung

CVE-2023-6931 ist eine Schwachstelle in perf_event, die zu einem Heap-Pufferüberlauf führt, verursacht durch einen Integer-Überlauf im read_size einer Gruppe.

Was ist ein Performance-Ereignis (perf event)?

perf_events ist ein vom Linux-Kernel bereitgestelltes Framework zur Leistungsüberwachung und -analyse. Dieses Framework ermöglicht die Verfolgung verschiedener leistungsbezogener Daten, die sowohl von Hardware- als auch von Softwarekomponenten generiert werden.

Hauptanwendungen

  • Hardware-Ereignisverfolgung Verfolgt Ereignisse wie CPU-Zyklen, Anzahl ausgeführter Befehle, Cache-Fehlzugriffe und mehr.
  • Software-Ereignisverfolgung Überwacht Ereignisse wie Wechselvorgänge, Seitenfehler, Kontextwechsel usw.
  • Benutzerdefinierte Ereignisverfolgung Ermöglicht die Verfolgung von Ereignissen, die für bestimmte Anwendungen oder den Kernel spezifisch sind.

Komponenten von perf

  • perf_event_open Systemaufruf Eine Schnittstelle, die es dem Benutzerbereich ermöglicht, Leistungsereignisse im Kernel zu konfigurieren und zu steuern. Sie wird verwendet, um Ereignisse zu erstellen, zu gruppieren, zu steuern oder Daten von Ereignissen zu lesen.
  • Leistungszähler Die tatsächlichen Daten, die von CPU und Kernel verfolgt werden, wie z. B. die Anzahl der ausgeführten Befehle oder die CPU-Auslastung.
  • Ereignisgruppen Ermöglicht das Gruppieren und gemeinsame Verwalten mehrerer Leistungsereignisse. Ein Gruppenleiterereignis fungiert als Vertreter der Gruppe, während Geschwisterereignisse die restlichen Ereignisse innerhalb der Gruppe darstellen.

Anforderung

  1. Der Wert von /proc/sys/kernel/perf_event_paranoid muss 1 oder niedriger sein.
  2. Die Anzahl der Dateideskriptoren, die geöffnet werden können, muss mindestens etwa 4100 betragen. Dies kann mit dem Befehl ulimit -n überprüft und geändert werden.
  3. Die Kerneloption CONFIG_PERF_EVENTS muss gesetzt sein.

Beschreibung

Die Schwachstelle entsteht durch einen Integer-Überlauf im read_size einer Gruppe. Die Funktion perf_event_validate_size führt eine Validierung des read_size durch. Allerdings überprüft die Art und Weise, wie read_size validiert wird, nur den read_size des aktuellen Ereignisses.

Der entscheidende Punkt ist, dass während jeder Validierung nur das aktuelle Ereignis validiert wird, während vorherige Ereignisse nicht validiert werden. Wenn PERF_FORMAT_GROUP für den Gruppenleiter gesetzt ist, kann bereits das Hinzufügen eines aktuellen Ereignisses den read_size des Gruppenleiters erhöhen.

Dies führt letztendlich zu einem Problem in perf_read_group. Die Berechnung von event->read_size basiert auf dem read_format des Gruppenleiters, multipliziert mit nr_siblings. Da die Variable read_size ein 2-Byte-u16 ist, beträgt der maximale Wert 0xffff.

Um dies auszunutzen, erstellt der Angreifer zunächst ein Gruppenleiterereignis mit allen möglichen read_format-Optionen. Anschließend werden zahlreiche Geschwisterereignisse erstellt. Diese Geschwister setzen nur PERF_FORMAT_TOTAL_TIME_RUNNING im read_Format, um keine Validierungsprobleme in perf_event_validate_size zu verursachen. Dadurch wird der Wert von nr_siblings extrem groß, aber da jedes Geschwisterereignis einzeln validiert wird, gibt es in dieser Phase keine Probleme.

Wenn perf_read_group in diesem Zustand aufgerufen wird, steigt der read_size des Gruppenleiters weiter an, da PERF_FORMAT_GROUP gesetzt ist. Dies führt schließlich zu einem Integer-Überlauf, und kzalloc weist einen sehr kleinen Puffer zu. Da die tatsächliche Anzahl der Ereignisse jedoch sehr groß ist, kommt es zu einem Heap-Pufferüberlauf, der eine Kernel-Panik verursacht.

Tool herunterladen