En bref

  • CVE-2026-33032 : authentification manquante sur l'endpoint MCP de nginx-ui (CVSS 9.8)
  • 2 689 instances exposées sur Internet selon Shodan, exploitation active depuis mars 2026
  • Action urgente : mettre à jour nginx-ui vers 2.3.4 ou désactiver l'intégration MCP

CVE-2026-33032 désigne une faille critique d'authentification dans nginx-ui, l'interface graphique open source largement utilisée pour piloter les serveurs Nginx. Notée CVSS 9.8 par le NIST, elle permet à un attaquant non authentifié de prendre le contrôle complet du service Nginx en quelques requêtes HTTP. La cause racine est triviale : un appel d'authentification manquant dans l'intégration Model Context Protocol (MCP). Là où l'endpoint /mcp impose le double contrôle whitelist IP plus middleware AuthRequired, l'endpoint /mcp_message ne reçoit que le filtrage IP. Or la whitelist est vide par défaut, ce que le code interprète comme « tout autoriser ». Recorded Future a inscrit CVE-2026-33032 dans sa liste des trente-et-une vulnérabilités les plus exploitées de mars 2026, et BleepingComputer documente une exploitation in-the-wild depuis le 16 avril 2026. Selon Shodan, 2 689 instances nginx-ui restent exposées sur Internet, avec une concentration en Chine, aux États-Unis, en Indonésie, en Allemagne et à Hong Kong. Le correctif officiel se résume à une seule ligne ajoutée dans la version 2.3.4.

Les faits

Selon l'analyse publiée par Rapid7, la chaîne d'attaque exploite deux requêtes HTTP successives. La première, un GET vers /mcp, transmet une valeur node_secret par défaut connue ou simplement vide pour récupérer un identifiant de session côté serveur. La seconde, un POST vers /mcp_message, utilise cet identifiant pour invoquer les commandes MCP exposées par nginx-ui sans aucune validation d'authentification supplémentaire. Parmi les opérations accessibles : édition de la configuration Nginx, rechargement automatique du service, déploiement de certificats arbitraires et exécution de commandes shell via l'API d'administration interne.

Le rapport sudowheel intitulé « MCPwn » détaille la primitive de prise de contrôle. La couverture par PurpleOps confirme la simplicité d'exploitation : « les bonnes deux requêtes HTTP depuis n'importe quel hôte du réseau accordent un contrôle d'écriture complet sur la configuration nginx, avec rechargement automatique pour appliquer ce qui a été injecté ». eSentire a publié un avis de sécurité dédié et Rapid7 a intégré une signature de détection dans Insight VM. La diffusion rapide d'exploit publique a accéléré l'adoption par les opérateurs de botnets, les affiliés ransomware et les acteurs étatiques cherchant un point d'entrée discret.

Impact et exposition

nginx-ui est déployé dans deux contextes principaux : les administrateurs système qui souhaitent gérer Nginx via une interface graphique sans éditer de fichiers de configuration, et les plateformes self-hosted (PaaS internes, environnements de développement, panneaux d'hébergement). La compromission d'un nginx-ui équivaut à la prise de contrôle du reverse proxy qui sert généralement de point d'entrée à plusieurs applications backend. Un attaquant peut injecter des règles de routage malveillantes, exfiltrer le trafic en clair, déployer des certificats TLS factices ou rediriger les utilisateurs vers des pages de phishing parfaitement transparentes.

L'écosystème observé par Recorded Future inclut désormais des opérateurs de botnets, des affiliés ransomware et des cybercriminels cherchant à établir une persistance, à exfiltrer des données ou à perturber des services. La faible complexité de l'exploitation et l'impact très élevé attirent un spectre large de menaces. Pour les hébergeurs mutualisés ou les PaaS, une compromission de nginx-ui peut cascader vers l'ensemble des sites hébergés derrière le reverse proxy. Les 2 689 instances exposées identifiées par Shodan ne sont qu'un plancher, les déploiements derrière VPN ou réseaux privés n'étant pas comptabilisés.

Recommandations immédiates

  • Mettre à jour nginx-ui vers la version 2.3.4 ou supérieure — correctif officiel ajoutant l'appel AuthRequired() manquant sur l'endpoint /mcp_message
  • Si la mise à jour est impossible immédiatement, désactiver l'intégration MCP dans la configuration nginx-ui ou bloquer les endpoints /mcp et /mcp_message via une règle Nginx en amont
  • Restreindre l'accès au panneau nginx-ui à un VPN d'administration ou à une plage IP fixe — le service ne doit jamais être accessible publiquement
  • Auditer la configuration Nginx en cours pour repérer des modifications suspectes (server blocks inconnus, certificats récemment ajoutés, redirections inhabituelles)
  • Surveiller les journaux d'accès pour détecter des requêtes vers /mcp_message accompagnées de paramètres node_secret non documentés

⚠️ Urgence

Avec une exploitation active confirmée par Recorded Future, BleepingComputer et eSentire depuis le 16 avril 2026, toute instance nginx-ui en version inférieure à 2.3.4 directement accessible doit être considérée comme potentiellement compromise. Audit forensique de la configuration Nginx et rotation des certificats TLS administrés via nginx-ui sont impératifs avant toute remise en service.

Détection et durcissement

Plusieurs marqueurs simples permettent de qualifier rapidement une exploitation. Côté logs Nginx, toute requête GET vers /mcp ou POST vers /mcp_message provenant d'une adresse IP non administrative constitue un signal fort. La présence d'en-têtes HTTP non standards (Mcp-Session-Id, X-Node-Secret) accompagnant ces requêtes confirme une tentative d'exploitation. Les équipes SOC peuvent enrichir leurs règles WAF avec une signature bloquant l'accès aux endpoints MCP depuis l'Internet public, en attendant la mise à jour applicative.

Le durcissement post-patch passe par une revue complète de la configuration Nginx servie par nginx-ui : recherche de directives proxy_pass non autorisées, vérification des certificats TLS et de leur chaîne de confiance, audit des location blocks pour détecter d'éventuelles règles de redirection vers des domaines tiers. Activer l'intégration audit log de nginx-ui et la centraliser dans un SIEM (Wazuh, Splunk, Elastic) permet de tracer toute modification ultérieure. Pour les déploiements multi-tenants, isoler nginx-ui dans un namespace réseau dédié et imposer une authentification mutuelle TLS sur l'interface d'administration ajoute une couche de défense en profondeur efficace.

Comment vérifier rapidement si mon nginx-ui est vulnérable ?

Connectez-vous à l'interface d'administration et consultez la version dans le pied de page ou les paramètres. Toute version antérieure à 2.3.4 est vulnérable. Pour un test externe rapide depuis un poste autorisé, une requête HTTP GET vers /mcp suivie d'un POST vers /mcp_message permet de constater la réponse du service. Si le serveur retourne une session ou un message structuré sans authentification, la faille est exploitable.

Puis-je désactiver MCP sans mettre à jour ?

Oui, c'est la mitigation immédiate recommandée si le redéploiement de nginx-ui pose contrainte. Désactivez l'intégration MCP dans la configuration applicative de nginx-ui ou ajoutez une règle Nginx amont qui retourne 403 sur les chemins /mcp et /mcp_message. Cette mesure est temporaire et ne dispense pas de la mise à jour vers 2.3.4 dans les meilleurs délais.

Pour comprendre le mécanisme similaire des bypass d'authentification sur outils d'administration, consultez notre analyse du bypass auth OAuth2 Proxy. Les compromissions de panneaux web exposés rappellent la RCE Kali Forms WordPress, autre exemple de panneau d'administration vulnérable. La problématique d'exploitation pré-authentifiée fait écho à la RCE pré-auth Marimo exploitée en dix heures. Enfin, pour les architectures cloud-native exposant des proxies de gestion, voir l'injection de commande AWS MCP Server.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités sur les panneaux d'administration web et reverse proxies, avec une attention particulière aux composants MCP exposés.

Demander un audit