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
Tools/GitHubGitHub/7043mcgeep/cve-2017-8890-msf
Exploit-FrameworksSchwachstellenanalyseExploitationBinary-Exploitation
GitHub7043mcgeep/cve-2017-8890-msf

cve-2017-8890-msf

Für Metasploit-Pull-Request

Repository anzeigen
11vor 7 JahrenNoch 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

Modul: Phoenix Talon CVE 2017-8890

Dies könnte das Problem #8571 beheben, das Phoenix Talon-Module anfordert.

Übersicht über 2017-8890

Diese CVE:

  • ist das schwerwiegendste Mitglied der Phoenix Talon-Klasse von Linux-Kernel-Schwachstellen. Kein POC dieser CVE existiert in der Exploit DB. Aber andere öffentliche POCs sind verfügbar.
  • ist nicht sehr gut dokumentiert. Aber hier ist eine kurze Erklärung, um Ihnen ein allgemeines Verständnis der Schwachstelle zu geben.
  • existiert in allen Kernel-Versionen bis 4.10.15, obwohl einige Quellen sagen, dass es bis 4.11 existiert. Siehe den Patch-Commit hier.
  • ist das Ergebnis eines Fehlers im IPv4-Stack des Kernels (genauer gesagt, Multicast).

Auf der Zielmaschine wird ein Double-Free ausgelöst, da der Kernel eine zusätzliche Kopie von mc_list zum Zeitpunkt von accept() behält.

Pseudocode mit Erklärungen:

Eine Maschine, die einen Kernel 4.10.15 oder niedriger ausführt, ist gefährdet, wenn sie die folgende Routine ausführt:

root@kitploit:~
Tool herunterladen
sockfd = socket(AF_INET, xx, IPPROTO_TCP); setsockopt(sockfd, SOL_IP, MCAST_JOIN_GROUP, xxxx, xxxx); bind(sockfd, xxxx, xxxx); listen(sockfd, xxxx); newsockfd = accept(sockfd, xxxx, xxxx); close(newsockfd); // trigger release calls, handoff to RCU sleep(5); // wait for rcu to free() close(sockfd); // second free()

Der Eltern-Socket, sockfd, wird erstellt. Er wird mit der Option MCAST_JOIN_GROUP zur Multicast-Gruppe hinzugefügt. Beim Hinzufügen des Sockets zur Multicast-Gruppe auf dem lokalen Interface allokiert der Kernel Speicher. An diesem Punkt existiert mc_list im Eltern-Socket.

Nachdem eine Adresse mit bind() an den Socket vergeben wurde, listen() für die Verbindung und accept(). accept() erstellt einen neuen Socket, newsockfd, auf den alle notwendigen Felder des Elternteils kopiert werden, einschließlich des Werts des mc_list-Zeigers. An diesem Punkt zeigen mehrere Zeiger auf denselben Speicherblock, daher der Double-Free.

Wenn die Verbindung hergestellt wird, erstellt der Kernel einen Kind-Socket, der das mc_list-Objekt des Eltern-Sockets erbt. Dieser Vererbungsfehler befindet sich in inet_csk_clone_lock in Zeile 648 der Datei net/ipv4/inet_connection_sock.c. Sehen Sie sich den Patch an, um die einzeilige Korrektur für diese unbeabsichtigte Vererbung zu sehen.

Als nächstes wird der Kind-Socket geschlossen. Wie oben erklärt, gibt dies das mc_list-Objekt nicht frei. Es durchläuft die RCU-Struktur (Remote-Copy-Update), um Speicher freizugeben. sleep() für einige Sekunden, um sicherzustellen, dass die RCU-Übergabe genügend Zeit hat, kfree() aufzurufen. Schließlich wird der Eltern-Socket geschlossen, was den zweiten Free auslöst.

Das Modul

Einfacher DoS. Remote einen Double-Free auf einer bekannten Zielmaschine auslösen, die die erforderliche Server-Routine ausführt (oben erklärt). Dies verursacht eine Kernel-Panik.