UNKNOWNCVE-2026-33032

Le point de terminaison MCP non authentifié de nginx-ui permet la prise de contrôle à distance de Nginx

Plateforme

go

Composant

github.com/0xjacky/nginx-ui

### Résumé L'intégration MCP (Model Context Protocol) de nginx-ui expose deux points de terminaison HTTP : `/mcp` et `/mcp_message`. Alors que `/mcp` exige à la fois une liste blanche d'adresses IP et une authentification (middleware `AuthRequired()`), le point de terminaison `/mcp_message` applique uniquement la liste blanche d'adresses IP - et la liste blanche d'adresses IP par défaut est vide, ce que le middleware considère comme « tout autoriser ». Cela signifie que tout attaquant réseau peut invoquer tous les outils MCP sans authentification, y compris le redémarrage de nginx, la création/modification/suppression de fichiers de configuration nginx et le déclenchement de rechargements automatiques de la configuration - réalisant ainsi une prise de contrôle complète du service nginx. ### Détails #### Code vulnérable **`mcp/router.go:9-17` - Asymétrie d'authentification entre les points de terminaison** ```go func InitRouter(r *gin.Engine) { r.Any("/mcp", middleware.IPWhiteList(), middleware.AuthRequired(), func(c *gin.Context) { mcp.ServeHTTP(c) }) r.Any("/mcp_message", middleware.IPWhiteList(), func(c *gin.Context) { mcp.ServeHTTP(c) }) } ``` Le point de terminaison `/mcp` a `middleware.AuthRequired()`, mais `/mcp_message` ne l'a pas. Les deux points de terminaison sont acheminés vers le même gestionnaire `mcp.ServeHTTP()`, qui traite toutes les invocations d'outils MCP. **`internal/middleware/ip_whitelist.go:11-26` - Emp

Comment corriger

Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.

Surveillez vos dépendances automatiquement

Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.

Commencer gratuitement