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-2026-22807_Range — # Cible pédagogique en Python simulant la CVE-2026-22807, une RCE dans la chaîne d'approvisionnement IA via TOCTOU lors du chargement de modèles Comprend une bibliothèque vulnérable, un script PoC et la génération dynamique de charges utiles pour la recherche en sécurité et l'enseignement. | Kitploit
Outils/GitHubGitHub/otakuliu/cve-2026-22807_range
Génération de PayloadsAnalyse des VulnérabilitésExploitationSécurité de la Chaîne LogistiqueApprentissage et ÉducationSécurité de l'IA
GitHubotakuliu/cve-2026-22807_range

CVE-2026-22807_Range

Voir le dépôt
7il y a 7 moisPas 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 →

À propos

# Cible pédagogique en Python simulant la CVE-2026-22807, une RCE dans la chaîne d'approvisionnement IA via TOCTOU lors du chargement de modèles Comprend une bibliothèque vulnérable, un script PoC et la génération dynamique de charges utiles pour la recherche en sécurité et l'enseignement.

Partager

🛡️ Simulation CVE-2026-22807 : Champ d'entraînement RCE sur chaîne d'approvisionnement IA

⚠️ Avertissement / Disclaimer

Ce projet est destiné uniquement à des fins de recherche et d'enseignement en sécurité, afin de démontrer le principe d'attaque sur la chaîne d'approvisionnement lors du chargement de modèles IA (Remote Code Execution). N'utilisez pas les modèles malveillants générés dans un environnement de production, et il est strictement interdit d'utiliser ce projet pour toute action d'attaque illégale. Le développeur décline toute responsabilité légale en cas d'utilisation inappropriée.

📖 Introduction au projet

Il s'agit d'un champ d'entraînement Python léger, conçu pour simuler et reproduire CVE-2026-22807 (une logique de vulnérabilité typique de la chaîne d'approvisionnement IA).

Ce champ d'entraînement démontre le problème de course temporelle (TOCTOU) lorsque les frameworks d'inférence IA (tels que vLLM, Transformers, etc.) chargent des modèles : si le chargeur, avant de vérifier trust_remote_code=False, importe prématurément le code Python fourni par l'utilisateur pour analyser l'architecture du modèle (AutoConfig/AutoModel), un attaquant peut contourner les contrôles de sécurité et réaliser une exécution de code à distance (RCE).

Caractéristiques principales

  • ❌ Logique vulnérable simulée : reproduit la conception erronée « analyser le code d'abord, vérifier les autorisations ensuite ».
  • 💣 Génération dynamique de payload : prise en charge de l'injection de commandes système personnalisées via les arguments de ligne de commande.
  • 🚀 Zéro dépendance : aucune installation de PyTorch ou vLLM requise, seule la bibliothèque standard Python suffit pour la validation.
  • 📂 Structure des fichiers

    Nom de fichierRôleDescription
    vulnerable_lib.py🎯 Cible (Victim)Simule une bibliothèque de chargement de modèles IA vulnérable (MiniLLM). Contient un ordre logique erroné.
    poc_dynamic.py🔫 Attaquant (Attacker)Script d'attaque automatisé. Génère le répertoire de modèle malveillant et déclenche le processus de chargement.
    dynamic_evil_model/📦 Payload malveillantRépertoire généré automatiquement après l'exécution du script, contenant config.json et malicious.py avec code injecté.

    🛠️ Démarrage rapide

    1. Préparation de l'environnement

    Assurez-vous que Python 3.x est installé. Ce champ d'entraînement ne dépend d'aucune bibliothèque tierce.

    2. Validation de base

    Exécutez directement le script d'attaque ; la commande whoami est exécutée par défaut.

    root@kitploit:~
    python poc_dynamic.py
    

    Sortie attendue : vous verrez la console afficher PWNED ainsi que le nom d'utilisateur système actuel, puis le programme lèvera l'exception « Remote code not allowed ». Cela prouve que la défense a été contournée.

    3. Exploitation avancée (commandes personnalisées)

    Vous pouvez passer n'importe quelle commande système comme argument au script pour générer une « bombe » spécifique.

    Exemple Windows (ouvrir la calculatrice) :

    root@kitploit:~
    python poc_dynamic.py calc
    

    Exemple Linux/Mac (afficher un fichier) :

    root@kitploit:~
    python poc_dynamic.py cat /etc/passwd
    

    🔍 Analyse technique de la vulnérabilité

    Flux logique de la vulnérabilité

    Ce champ d'entraînement reproduit le processus dangereux suivant :

    1. Chargement de la configuration : le chargeur lit config.json.
    2. Analyse de l'architecture (Vulnérabilité) : le chargeur détecte le champ auto_map et, pour confirmer la classe du modèle, exécute directement l'import via importlib du fichier Python cible.
    3. Exécution du code (Exploit) : en raison du mécanisme d'import de Python, le os.system() au niveau supérieur du fichier malveillant est exécuté immédiatement.
    4. Contrôle de sécurité (Bypass) : une fois le code exécuté, le chargeur vérifie seulement alors trust_remote_code. Bien qu'il intercepte et lève une erreur à ce moment-là, l'attaque est déjà terminée.

    Comparaison du code principal

    ❌ Code vulnérable (vulnerable_lib.py) :

    root@kitploit:~
    # 1. Déclenche d'abord le chargement du code (la RCE se produit ici)
    self._resolve_model_class() 
    
    # 2. Effectue ensuite le contrôle de sécurité (fermer la porte après l'évasion)
    if not self.trust_remote_code:
        raise RuntimeError("Aborted!")
    

    ✅ Correctif :

    root@kitploit:~
    # 1. Effectue d'abord le contrôle de sécurité
    if not self.trust_remote_code and self._needs_remote_code():
        raise RuntimeError("Aborted!")
    
    # 2. Ne charge le code qu'après validation
    self._resolve_model_class()
    
    Télécharger l’outil