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-2022-21668-Pipenv-RCE-vulnerability | Kitploit
Tools/GitHubGitHub/sreeram281997/cve-2022-21668-pipenv-rce-vulnerability
SchwachstellenanalyseExploitationWebsicherheitLieferkettensicherheitPapers & ForschungLernen & Bildung
GitHubsreeram281997/cve-2022-21668-pipenv-rce-vulnerability

CVE-2022-21668-Pipenv-RCE-vulnerability

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
11vor 4 JahrenNoch nicht geprüft

CVE-2022-21668-Pipenv-RCE-Schwachstelle

1. Einleitung

In diesem Dokument wird die Pipenv-Schwachstelle (CVE-2022-21668) im Detail besprochen. Die folgenden Abschnitte behandeln den fehlerhaften Code in der Datei pipenv/utils.py, der die Tür für verschiedene RCE-Angriffe öffnet, sowie die kürzlich erfolgte Korrektur, die die SSL/TLS-Verbindung validiert und den Hostnamen anhand einer Liste vertrauenswürdiger Hosts überprüft.

1.1. Listeneintrag

Pipenv Pipenv ist ein Tool, das automatisch eine virtualenv für Ihre Projekte erstellt und verwaltet und Pakete zu Ihrer Pipfile hinzufügt bzw. daraus entfernt, wenn Sie Pakete installieren oder deinstallieren.

Für weitere Informationen klicken Sie hier

1.2 requirements.txt

Wir benötigen eine requirements.txt-Datei, wenn wir mit komplexen Systemen zu tun haben. Diese Textdatei ist auch praktisch, wenn wir die Anwendung in eine andere Umgebung portieren möchten. Diese Datei enthält alle Pakete/Abhängigkeiten, die zum erfolgreichen Ausführen einer Anwendung erforderlich sind, zusammen mit ihren Versionsnummern.

Beispiel requirements.txt-Datei:

Beispiel requirements-Datei

Bildquelle: https://www.idkrtm.com/what-is-the-python-requirements-txt/

Wenn wir keine requirements.txt-Datei haben, ist es möglicherweise nicht möglich, unsere Anwendung erfolgreich auf ein anderes System zu portieren, da es Kompatibilitätsprobleme zwischen den Paketversionen geben könnte.

2. CVE-2022-21668

Ab Pipenv-Version 2018.10.9 und vor Version 2022.1.8 ermöglicht ein Fehler beim Parsen von requirements-Dateien durch Pipenv einem Angreifer, eine speziell konstruierte Zeichenfolge in einen Kommentar an beliebiger Stelle in einer requirements.txt-Datei einzufügen. Dadurch werden Opfer, die pipenv zum Installieren der requirements-Datei verwenden, dazu veranlasst, Abhängigkeiten von einem vom Angreifer kontrollierten Paketindex-Server herunterzuladen. Ein RCE-Angriff ist gegen solche hochgradig verwundbaren Systeme sehr gut durchführbar.

cvedetails bewertet diese Schwachstelle als kritisch / schwerwiegend.

CVSS-Wert von cvedetials: CVSS-Score (Quelle: https://www.cvedetails.com/cve/CVE-2022-21668/)

3. Code-Fehler

CVE-2022-21668-Fehler

Diese Funktion wird iterativ für jede Zeile einer requirements-Datei aufgerufen und verwendet das argparse-Modul, um die Optionen --index-url, --extra-index-url und --trusted-host zu finden und zu verarbeiten. Sie ignoriert diese Optionen jedoch nicht, wenn sie in Kommentaren erscheinen. Das Problem mit dem Code ist, dass er die Zeichenfolgen, die mit "--index-url, --extra-index-url, and --trusted-host" beginnen, an beliebiger Stelle in der Datei parst. Diese Funktionalität macht ihn anfälliger.

Für weitere Informationen klicken Sie hier

4. RCE-Exploit

Angriffe durch Remote-Codeausführung (Remote Code Execution, RCE) ermöglichen es einem Angreifer, schädlichen Code aus der Ferne auf einem Computer auszuführen. Die Auswirkungen einer RCE-Schwachstelle können von der Ausführung von Malware bis hin zur vollständigen Kontrolle eines kompromittierten Systems durch den Angreifer reichen.

Wenn ein Angreifer eine bösartige --index-url Option in einer requirements-Datei verstecken kann, die ein Opfer mit pipenv installiert, kann der Angreifer beliebigen schädlichen Code in Paketen einbetten, die von seinem bösartigen Index-Server bereitgestellt werden. Dieser Code wird während der Installation auf dem Host des Opfers ausgeführt (Remote Code Execution/RCE). Die Ausnutzung dieser Technik wäre für einen Angreifer mit grundlegenden Python-Kenntnissen relativ einfach zu bewerkstelligen, da der Angreifer einfach eine Source-Distribution für eines der in der requirements-Datei angegebenen Pakete erstellen und beliebigen schädlichen Code in der Datei setup.py einbetten kann. Wenn pip aus einer Source-Distribution installiert, wird jeder Code in setup.py während des Installationsprozesses ausgeführt.

Für weitere Details klicken Sie hier

5. Behebung

In Version 2022.1.8 und höher ist dieses Problem behoben. Eine neue Funktion „get_host_and_port(url)“ wurde in der Datei pipenv/utils.py hinzugefügt. Diese Funktion ruft den Host und den Port der in der requirements.txt-Datei angegebenen URL ab. Die abgerufene Host-Adresse wird mithilfe von urllib3 geparst, das intern die SSL/TLS-Verbindung validiert. Die Host-Adresse wird außerdem gegen eine Liste vertrauenswürdiger Host-Adressen geprüft.

Behebung für CVE-2022-21668

Weitere Informationen hier

6. Auswirkungen

Einfache Angriffe könnten die anfängliche RCE nutzen, die ausgelöst wird, wenn ein Opfer das bösartige Paket des Angreifers installiert, um Anmeldeinformationen vom Host des Opfers zu stehlen, die Ressourcen des Hosts zum Schürfen von Kryptowährung zu missbrauchen oder Exploit-Kits oder andere Malware zu installieren. Raffiniertere Angreifer könnten fortschrittlichere Techniken verwenden, um den Zugriff auf den Host des Opfers aufrechtzuerhalten, Beweise ihres Angriffs zu verbergen oder zu entfernen, indem sie Verweise auf den bösartigen Index-Server in der von pipenv erzeugten Pipfile und Pipfile.lock oder andere potenzielle Indikatoren einer Kompromittierung löschen. Äußerst versierte Angreifer könnten versuchen, vom ursprünglich kompromittierten Host aus auf weitere Ziele auszuweichen (Pivoting), und könnten dabei offengelegte Anmeldeinformationen in der Umgebung des kompromittierten Hosts oder die dem Host gewährte implizite Autorisierung ausnutzen, um privilegierten Zugriff auf andere Systeme oder Ressourcen wie Quellcode-Repositories oder Paketregister zu erlangen. (Quelle: https://github.com/pypa/pipenv/security/advisories/GHSA-qc9x-gjcv-465w)

7. Zusammenfassung

  • Ein Parsing-Fehler, der das Parsen der Kommentare nicht richtig berücksichtigt, hat eine kritische Schwachstelle geschaffen.

  • Listeneintrag Mit einer solchen Schwachstelle in der Hand ist sogar das Einrichten eines bösartigen Index-Servers, der kompromittierte Paketversionen ausliefert, relativ einfach, selbst für einen nicht versierten Angreifer.

Zusätzliche Ressourcen

  • FEDORA FEDORA-2022-508e460384
  • FEDORA FEDORA-2022-77ce20f03a
  • Pull-Request von GHSA-qc9x-gjcv-465w zusammenführen
  • Behobene Version
  • Pipenvs requirements.txt-Parser erlaubt bösartige Index-URLs in Kommentaren
Tool herunterladen