Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 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
il y a 1 jourPas 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 système 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.-à-d. /bin/sh -c.

⚠ À lire en premier — identifiant en double

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, assigné par VulDB et publié 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é assigné à s1ko par MITRE CNA-LR le 2026-07-13 en réponse à un rapport indépendant. Cette assignation semble être un doublon, et elle a été signalée comme telle. L'identifiant préexistant CVE-2026-3484 est celui qui doit être cité.

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

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 se réfèrent au 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, sorties d'outils — de sorte que l'injection indirecte de prompt donne à l'attaquant le contrôle des valeurs qu'un gestionnaire d'outil reçoit. Un gestionnaire qui transmet l'une de ces valeurs à 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 :

root@kitploit:~
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(), qui valide le type et ne dit rien sur le contenu, donc les métacaractères passent à travers. additionalFlags atteint la même chaîne par le même chemin.

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

root@kitploit:~
/bin/sh -c "nmap … 127.0.0.1; touch /tmp/marker; echo INJECTED"

Reproduction

poc/driver.mjs parle MCP sur 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.

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

Résultat attendu sur une version affectée :

root@kitploit:~
==== 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 initial se résolve ou non. Validé le 2026-06-01 dans un conteneur isolé et re-validé 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.
  • Enfants inattendus du processus serveur MCP. nmap est attendu ; un shell, un interpréteur ou un client réseau ne l'est pas.
  • Journaux d'appels d'outils MCP où target ou additionalFlags contiennent des métacaractères shell. Un target doit correspondre à une IP, un CIDR ou un nom d'hôte et rien d'autre.

MITRE ATT&CK T1059.004 Interpréteur de commandes et de scripts : shell Unix.

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. Le retrait est l'atténuation :

  • Cessez d'utiliser le paquet. Il n'est plus maintenu, publiquement vulnérable depuis mars 2026, et ne sera pas corrigé.
  • S'il doit rester, exécutez-le dans un conteneur ou une machine virtuelle 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 via un transport réseau.
  • Enveloppez ou forkez le serveur pour valider target contre un motif IP/CIDR/nom d'hôte et pour mettre additionalFlags sur liste autorisée avant que l'un ou l'autre n'atteigne la chaîne de commande.

La correction, pour quiconque le forke, est d'appeler execFile("nmap", [...args]) avec un vecteur d'arguments au lieu de construire une chaîne pour exec. La validation du contenu, 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

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 compagnons de la même campagne de recherche : CVE-2026-52617, CVE-2026-52618.

Licence

MIT — voir LICENSE.

Télécharger l’outil
CVECVE-2026-52616 — doublon de CVE-2026-3484
CWECWE-78 (Mauvaise neutralisation des éléments spéciaux utilisés dans une commande système)
Paquetmcp-nmap-server (npm)
Versions affectées1.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 = 7,8 Élevée (transport stdio). AV:N → 9,8 Critique si le serveur est enveloppé dans un transport réseau.
Rapporté indépendamment pars1ko (github.com/s1ko, [email protected])
CVE assigné2026-07-13, MITRE CNA-LR
DateÉvénement
2026-03-03CVE-2026-3484 / GHSA-xc68-rrqc-qgq3 publié par VulDB — la divulgation publique originale, par un autre rapporteur
2026-05-29Identifié indépendamment par revue du code source du tarball publié, 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 avant soumission ; dépôt confirmé archivé, signalement privé de vulnérabilité indisponible. Verdict interne : ne pas déposer
2026-07-13MITRE CNA-LR assigne CVE-2026-52616 quand même, créditant s1ko comme découvreur
2026-08-22Cet article publié, documentant le doublon