Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2022-21668-Pipenv-RCE-vulnerability — Analyse détaillée de CVE-2022-21668, une vulnérabilité critique d'exécution de code à distance (RCE) dans l'analyse du fichier requirements.txt de Pipenv, incluant le code du bogue, les mécanismes d'exploitation et la validation du correctif. | Kitploit
Outils/GitHubGitHub/sreeram281997/cve-2022-21668-pipenv-rce-vulnerability
Analyse des VulnérabilitésExploitationSécurité WebSécurité de la Chaîne LogistiqueArticles et RechercheApprentissage et Éducation
GitHubsreeram281997/cve-2022-21668-pipenv-rce-vulnerability

CVE-2022-21668-Pipenv-RCE-vulnerability

Analyse détaillée de CVE-2022-21668, une vulnérabilité critique d'exécution de code à distance (RCE) dans l'analyse du fichier requirements.txt de Pipenv, incluant le code du bogue, les mécanismes d'exploitation et la validation du correctif.

Voir le dépôt
112il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2022-21668-Pipenv-RCE-vulnerability

1. Introduction

Dans ce document, la vulnérabilité de Pipenv (CVE-2022-21668) est discutée en détail. Les sections suivantes couvrent le code défectueux dans le fichier pipenv/utils.py qui ouvre la porte à diverses attaques RCE, ainsi que le correctif récent qui valide la connexion SSL/TLS et vérifie le nom d'hôte par rapport à une liste d'hôtes de confiance.

1.1. Élément de liste

Pipenv Pipenv est un outil qui crée et gère automatiquement un environnement virtuel (virtualenv) pour vos projets, et ajoute/supprime des paquets de votre Pipfile lorsque vous installez/désinstallez des paquets.

Pour plus d'informations, cliquez ici

1.2 requirements.txt

Nous avons besoin d'un fichier requirements.txt chaque fois que nous traitons avec des systèmes complexes. Ce fichier texte est également utile lorsque nous voulons porter l'application vers un autre environnement. Ce fichier contient tous les paquets/dépendances nécessaires pour exécuter une application avec succès, ainsi que leurs numéros de version.

Exemple de fichier requirements.txt :

requirements sample

Source de l'image : https://www.idkrtm.com/what-is-the-python-requirements-txt/

Si nous n'avons pas de fichier requirements.txt, il peut ne pas être possible de porter notre application avec succès vers un autre système, car il pourrait y avoir un problème de compatibilité entre les versions des paquets.

2. CVE-2022-21668

À partir de Pipenv version 2018.10.9 et avant la version 2022.1.8, une faille dans l'analyse des fichiers de dépendances (requirements) par pipenv permet à un attaquant d'insérer une chaîne spécialement conçue à l'intérieur d'un commentaire n'importe où dans un fichier requirements.txt, ce qui oblige les victimes utilisant pipenv pour installer le fichier de dépendances à télécharger des dépendances depuis un serveur d'index de paquets contrôlé par l'attaquant. Une attaque RCE est hautement réalisable contre ces systèmes très vulnérables.

cvedetails évalue cette vulnérabilité comme critique / sévère.

Score CVSS provenant de cvedetails : CVSS Score (Source : https://www.cvedetails.com/cve/CVE-2022-21668/ )

3. Bug du code

CVE-2022-21668 Bug Cette fonction est appelée de manière itérative sur chaque ligne d'un fichier requirements, et utilise le module argparse pour trouver et traiter les options --index-url, --extra-index-url et --trusted-host. Cependant, elle n'ignore pas ces options lorsqu'elles apparaissent dans les commentaires. Le problème du code est qu'il analysera les chaînes commençant par "--index-url, --extra-index-url, et --trusted-host" n'importe où dans le fichier. Cette fonctionnalité le rend plus vulnérable. Pour plus d'informations, cliquez ici

4. Exploit RCE

Les attaques d'exécution de code à distance (RCE) permettent à un attaquant d'exécuter du code malveillant à distance sur un ordinateur. L'impact d'une vulnérabilité RCE peut aller de l'exécution d'un logiciel malveillant jusqu'à la prise de contrôle totale de la machine compromise.

Si un attaquant parvient à cacher une option --index-url malveillante dans un fichier de dépendances qu'une victime installe avec pipenv, l'attaquant peut intégrer du code malveillant arbitraire dans des paquets servis depuis son serveur d'index malveillant, code qui sera exécuté sur la machine de la victime lors de l'installation (exécution de code à distance / RCE). L'exploitation utilisant cette technique serait relativement simple à réaliser pour un attaquant ayant des connaissances de base en Python, car l'attaquant peut simplement construire une distribution source pour n'importe lequel des paquets spécifiés dans le fichier requirements, et intégrer du code malveillant arbitraire dans le fichier setup.py. Lorsque pip installe à partir d'une distribution source, tout code dans setup.py est exécuté par le processus d'installation.

Pour plus de détails, cliquez ici

5. Correctif

Les versions 2022.1.8 et supérieures ont ce problème corrigé. Une nouvelle fonction "get_host_and_port(url)" a été ajoutée dans le fichier pipenv/utils.py. Cette fonction récupère l'hôte et le port de l'URL soumise dans le fichier requirements.txt. L'adresse hôte récupérée est analysée à l'aide d'urllib3 qui valide en interne la connexion SSL/TLS. L'adresse hôte est également vérifiée par rapport à une liste d'adresses d'hôtes de confiance. Fix for CVE-2022-21668 Plus d'infos ici

6. Impact

Les attaques de base peuvent utiliser la RCE initiale déclenchée lorsqu'une victime installe le paquet malveillant de l'attaquant pour voler des identifiants sur la machine de la victime, exploiter les ressources de la machine pour miner des cryptomonnaies, ou installer des kits d'exploitation ou d'autres logiciels malveillants. Des attaquants plus sophistiqués peuvent utiliser des techniques plus avancées pour persister dans l'accès à la machine de la victime, cacher ou supprimer les preuves de leur attaque en supprimant les références au serveur d'index malveillant dans le Pipfile et le Pipfile.lock générés par pipenv, ou d'autres indicateurs de compromission potentiels. Des attaquants hautement sophistiqués pourraient tenter de pivoter vers d'autres cibles à partir de la machine initialement compromise, et pourraient tirer parti de tout identifiant exposé dans l'environnement de la machine compromise ou de l'autorisation implicite accordée à la machine pour obtenir un accès privilégié à d'autres systèmes ou ressources, tels que des dépôts de code source ou des registres de paquets. (Source : https://github.com/pypa/pipenv/security/advisories/GHSA-qc9x-gjcv-465w)

7. Résumé

  • Une erreur d'analyse qui ne prend pas en compte l'analyse correcte des commentaires a créé une vulnérabilité critique.

  • Avec une telle vulnérabilité en main, même la mise en place d'un serveur d'index malveillant pour servir des versions de paquets compromises est relativement simple, même pour un attaquant non sophistiqué.

Ressources supplémentaires

  • FEDORA FEDORA-2022-508e460384
  • FEDORA FEDORA-2022-77ce20f03a
  • Merge pull request from GHSA-qc9x-gjcv-465w
  • Version corrigée
  • L'analyse du fichier requirements.txt de Pipenv permet une URL d'index malveillante dans les commentaires
Télécharger l’outil