Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-52616 — Avis et PoC bénin pour l'injection de commandes OS dans un serveur MCP nmap, avec suivi des CVE en double, conseils de détection et mesures d'atténuation. | Kitploit
Outils/GitHubGitHub/s1ko/cve-2026-52616
Analyse des VulnérabilitésExploitationSécurité RéseauSécurité des API
GitHubs1ko/cve-2026-52616

CVE-2026-52616

Avis et PoC bénin pour l'injection de commandes OS dans un serveur MCP nmap, avec suivi des CVE en double, conseils de détection et mesures d'atténuation.

Voir le dépôt
26il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-52616 — mcp-nmap-server : injection de commande OS via run_nmap_scan

L'outil MCP run_nmap_scan construit sa commande par interpolation de chaîne des paramètres target et additionalFlags et l'exécute via child_process.exec, c'est-à-dire /bin/sh -c.

⚠ À lire en premier — identifiant en doublon

Cette vulnérabilité était déjà publique avant l'existence de cet identifiant CVE. Elle est couverte par CVE-2026-3484 / GHSA-xc68-rrqc-qgq3, attribuée par VulDB et publiée le 2026-03-03 contre mcp-nmap-server <= 1.0.1 — même paquet, même sink CWE-78 child_process.exec.

CVE-2026-52616 a été attribué à s1ko par le CNA-LR de MITRE le 2026-07-13 en réponse à un rapport indépendant. Cette attribution semble être un doublon, et elle a été signalée comme telle. L'identifiant préexistant CVE-2026-3484 est celui qui devrait être cité.

Ce dépôt est publié par souci d'exhaustivité et pour documenter le doublon, non comme une revendication de découverte inédite. Le crédit de la divulgation publique originale ne revient pas à s1ko.

CVECVE-2026-52616 — doublon de CVE-2026-3484
CWECWE-78 (Neutralisation incorrecte des éléments spéciaux utilisés dans une commande OS)
Paquetmcp-nmap-server (npm)
Affecté1.0.1 et antérieures — toutes les versions publiées
Corrigé dansaucune — dépôt archivé
CVSS v3.1AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.4 Élevé (transport stdio). AV:N → 9.8 Critique si le serveur est encapsulé dans un transport réseau.
Signalé indépendamment pars1ko (github.com/s1ko, [email protected])
CVE attribué2026-07-13, CNA-LR de MITRE

Un piège de nommage à noter pour quiconque déduplique ceci : le paquet npm est mcp-nmap-server et le dépôt est nmap-mcp-server. Les deux ordres désignent le même projet.

Modèle de menace

Les arguments des outils MCP sont influencés par l'attaquant. Ils sont produits par un LLM à partir du contenu que l'agent traite — documents, pages web, sortie d'outils — de sorte que l'injection de prompt indirecte place un attaquant aux commandes des valeurs que reçoit un gestionnaire d'outil. Un gestionnaire qui injecte l'une de ces valeurs dans un shell transforme cette influence en exécution de code sur l'hôte exécutant le serveur MCP. C'est le même modèle que le cas précédent aws-mcp-server / CVE-2026-5058.

Exécution

dist/index.js — la cible est ajoutée à une chaîne de commande qui est ensuite transmise à exec :

command += ` ${target}`;
…
const { stdout, stderr } = await promisify(exec)(command);

child_process.exec exécute son argument dans /bin/sh -c, donc tout ce que l'appelant a fourni est de la syntaxe shell. Le schéma d'entrée Zod déclare z.string(), ce qui valide le type et ne dit rien sur le contenu, donc les métacaractères passent. additionalFlags atteint la même chaîne par la même voie.

Un appel run_nmap_scan avec target défini sur 127.0.0.1; touch /tmp/marker; echo INJECTED produit :

/bin/sh -c "nmap … 127.0.0.1; touch /tmp/marker; echo INJECTED"

Reproduction

poc/driver.mjs communique avec MCP via stdio : il initialise le serveur, émet un tools/call pour run_nmap_scan avec un target injecté, et vérifie la présence d'un fichier marqueur. La charge utile est un touch bénin.

npm pack [email protected]
tar xf mcp-nmap-server-1.0.1.tgz && cd package && npm install
node ../poc/driver.mjs

Attendu sur une version affectée :

==== POC RESULT (mcp-nmap-server) ====
marker /tmp/PWNED_nmap created: true
verdict: CONFIRMED — command injection executed

nmap n'a pas besoin d'être installé — la commande injectée s'exécute dans la même chaîne /bin/sh -c, que le binaire de tête soit résolu ou non. Validé le 2026-06-01 dans un conteneur isolé et revalidé le 2026-06-13. Ne l'exécutez que contre une infrastructure que vous êtes autorisé à tester.

Détection

  • Une ligne de commande nmap contenant ;, &&, ||, |, un backtick ou $(.
  • Un processus sh -c dont la ligne de commande commence par nmap et contient une seconde commande après un séparateur — un signal d'arborescence de processus (auditd, eBPF, Falco, EDR) qui ne dépend pas de la journalisation applicative.
  • Des processus enfants inattendus du processus serveur MCP. nmap est attendu ; un shell, un interpréteur ou un client réseau ne l'est pas.
  • Des journaux d'appels d'outils MCP où target ou additionalFlags contiennent des métacaractères de shell. Un target doit correspondre à une IP, un CIDR ou un nom d'hôte et rien d'autre.

MITRE ATT&CK T1059.004 Command and Scripting Interpreter: Unix Shell.

Atténuation

Le dépôt est archivé et en lecture seule, la dernière version npm est la 1.0.1 affectée, et aucune version corrigée ne sera publiée. La suppression est l'atténuation :

  • Cessez d'utiliser le paquet. Il n'est plus maintenu, est publiquement vulnérable depuis mars 2026 et ne sera pas corrigé.
  • S'il doit rester, exécutez-le dans un conteneur ou une VM en tant qu'utilisateur non privilégié, sans identifiants dans son environnement et sans sortie réseau au-delà de la plage de scan, et ne l'exposez pas sur un transport réseau.
  • Enveloppez ou forkez le serveur pour valider target par rapport à un motif IP/CIDR/nom d'hôte et pour mettre additionalFlags sur liste blanche avant que l'un ou l'autre n'atteigne la chaîne de commande.

Le correctif, pour quiconque le forke, consiste à appeler execFile("nmap", [...args]) avec un vecteur d'arguments au lieu de construire une chaîne pour exec. La validation du contenu, et pas seulement la validation de type Zod, est l'exigence sous-jacente.

NIST SP 800-53r5 SI-10 ; OWASP ASVS v4 §5.3.8 ; atténuations CWE-78 M1 et M2.

Chronologie

DateÉvénement
2026-03-03CVE-2026-3484 / GHSA-xc68-rrqc-qgq3 publiés par VulDB — la divulgation publique initiale, par un autre rapporteur
2026-05-29Identifié indépendamment par revue du code source de l'archive publiée, sans connaissance de l'avis de mars
2026-06-01Validé dynamiquement via MCP stdio dans un conteneur isolé
2026-06-13Doublon identifié lors de la déduplication pré-soumission ; dépôt confirmé archivé avec Private Vulnerability Reporting indisponible. Verdict interne : ne pas déposer
2026-07-13Le CNA-LR de MITRE attribue CVE-2026-52616 malgré tout, en créditant s1ko comme découvreur
2026-08-22Publication de ce rapport, documentant le doublon

Références

  • Avis original — https://github.com/advisories/GHSA-xc68-rrqc-qgq3
  • CVE original — https://nvd.nist.gov/vuln/detail/CVE-2026-3484
  • Paquet npm — https://www.npmjs.com/package/mcp-nmap-server
  • Dépôt (archivé) — https://github.com/PhialsBasement/nmap-mcp-server
  • Précédent pour le modèle de menace MCP — CVE-2026-5058 (aws-mcp-server)

Avis complémentaires issus de la même passe de recherche : CVE-2026-52617, CVE-2026-52618.

Licence

MIT — voir LICENSE.

Télécharger l’outil