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-33032 — Uma única chamada de função ausente no registro de rotas foi suficiente para transformar a interface MCP em um gateway de RCE não autenticado. | Kitploit
Ferramentas/GitHubGitHub/keraattin/cve-2026-33032
ReconhecimentoScanners de VulnerabilidadesExploraçãoSegurança WebSegurança de RedeTestes de PenetraçãoSegurança de API
GitHubkeraattin/cve-2026-33032

CVE-2026-33032

Uma única chamada de função ausente no registro de rotas foi suficiente para transformar a interface MCP em um gateway de RCE não autenticado.

Ver Repositório
544há 5 mesesAinda não revisado

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-33032 / MCPwn

CVE CVSS Status Affected License Python

Ferramenta de detecção não destrutiva para a bypass de autenticação MCP do nginx-ui conhecida publicamente como MCPwn. Permite a tomada de controlo não autenticada de qualquer instância nginx-ui a executar uma versão vulnerável, através de dois pedidos HTTP.

Índice

  1. Factos Rápidos
  2. Visão Geral da Vulnerabilidade
  3. Análise Técnica Aprofundada
  4. Estratégia de Deteção
  5. Instalação
  6. Utilização
  7. Exemplo de Saída
  8. Encadear com CVE-2026-27944
  9. Remediação
  10. Utilização Responsável
  11. Referências
  12. Licença

Factos Rápidos

CampoValor
ID CVECVE-2026-33032
AliasMCPwn
CVSS 3.19.8 / Crítico (AV:N / AC:L / PR:N / UI:N / S:U / C:H/I:H/A:H)
CWECWE-306 Falta de Autenticação para Função Crítica
Produto afetadonginx-ui (github.com/0xjacky/nginx-ui)
Versões afetadasTodas as versões anteriores a 2.3.4
Versão corrigida2.3.4
Estado de exploraçãoAtiva no terreno (Picus Security, Recorded Future)
Exposição no Shodan~2.689 instâncias expostas à Internet
Data de publicação2026-04-15

Visão Geral da Vulnerabilidade

O nginx-ui expõe uma interface Model Context Protocol (MCP) que permite a um operador autenticado acionar ferramentas destrutivas, como edições de configuração do nginx, comandos de reinício e operações de backup, através de JSON-RPC.

O endpoint /mcp é protegido pelo middleware AuthRequired(), enquanto o seu endpoint emparelhado /mcp_message, que na realidade recebe as invocações das ferramentas, foi implementado sem o middleware. Qualquer cliente que consiga alcançar a interface através da rede pode:

  1. Abrir um stream Server Sent Events (SSE) para /mcp e receber um sessionID novo sem apresentar qualquer credencial.
  2. Usar esse sessionID para invocar qualquer ferramenta MCP registada, fazendo POST para /mcp_message, ainda sem autenticação.

O atacante obtém controlo total do processo nginx: editar blocos de servidor para redirecionar tráfego, extrair chaves privadas TLS através de leituras de caminhos, recarregar ou parar o nginx, e implantar backdoors persistentes.

Análise Técnica Aprofundada

Causa raiz ao nível do código

// vulnerável (pré-2.3.4)
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", mcpMessageHandler)    // middleware em falta

// corrigido em 2.3.4
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", AuthRequired(), mcpMessageHandler)

Uma única chamada de função em falta no registo da rota foi suficiente para transformar a interface MCP num portal de RCE não autenticado.

Esboço do ataque de ponta a ponta

  Atacante                              nginx-ui (<2.3.4)
     |   1) GET /mcp  (sem auth)               |
     | -------------------------------------->  |
     |   2) event: endpoint data: /mcp_message?sessionID=XYZ
     | <--------------------------------------  |
     |   3) POST /mcp_message?sessionID=XYZ     |
     |      body: JSON-RPC call_tool "nginx_reload" ou
     |             "edit_config {...}"          |
     | -------------------------------------->  |
     |   4) 200 OK; ferramenta executada com privilégios totais
     | <--------------------------------------  |

Matriz de impacto

Ferramenta MCPEfeito no servidor nginx
edit_configReescrever blocos de servidor arbitrários, inserir upstream do atacante
reload_nginxAplicar configuração do atacante sem ação manual
stop_nginxNegação de serviço
read_fileExfiltrar chaves privadas TLS, credenciais de caminhos montados
create_certReemitir certificados TLS sob controlo do atacante
list_backups / downloadDescarregar o backup completo do nginx-ui, incluindo node_secret e hashes

Estratégia de Deteção

Este repositório evita intencionalmente qualquer ação destrutiva. O detetor usa apenas métodos MCP de leitura (tools/list). A lógica:

> Passo 1  Identificar nginx-ui através de
>         GET /               (título HTML, bundles JS)
>         GET /api/settings   (JSON com referências a chaves do nginx-ui)
>         Extrair versão via regex no cabeçalho / corpo
> Passo 2  Abrir stream SSE para /mcp
>         Analisar o primeiro sessionID do evento "endpoint"
> Passo 3  POST /mcp_message?sessionID=<id>
>         Body: {"jsonrpc":"2.0","method":"tools/list","params":{}}
>         Sem cabeçalho Authorization
> Passo 4  Vulnerável se status 200 e o corpo contiver um manifesto de ferramentas
>         Corrigido se status 401 / 403 / 404
>         Inconclusivo caso contrário

Porque é seguro

O método JSON-RPC tools/list é apenas de leitura. Enumera as ferramentas que o servidor MCP conhece, mas não invoca nenhuma delas. O script recusa-se a fazer POST de qualquer outro método e nunca constrói payloads para ferramentas destrutivas.

Instalação

git clone https://github.com/your-org/CVE-2026-33032-detector.git
cd CVE-2026-33032-detector
python3 --version      # 3.9 ou mais recente
# Não são necessários pacotes de terceiros.

Para o componente Nmap NSE, copie nginx-ui-mcpwn.nse para o seu diretório local de scripts e atualize a base de dados de scripts:

cp nginx-ui-mcpwn.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

Utilização

Detetor Python

# Alvo único
python3 detect_nginx_ui_mcpwn.py --target https://nginx-ui.internal

# Análise em massa a partir de ficheiro
python3 detect_nginx_ui_mcpwn.py --targets targets.txt --workers 20

# Saída JSON (NDJSON) adequada para canalizar para jq
python3 detect_nginx_ui_mcpwn.py --target 10.0.0.5:9000 --json | jq .

Referência da linha de comandos:

Baixar ferramenta