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
sentrymcp — Un scanner de sécurité statique + runtime pour les serveurs MCP (Model Context Protocol) | Kitploit
Outils/GitHubGitHub/zaydmulani09/sentrymcp
Analyse StatiqueScanners de VulnérabilitésDétection de SecretsMauvaise ConfigurationSécurité des APISécurité de l'IA
GitHubzaydmulani09/sentrymcp

sentrymcp

Un scanner de sécurité statique + runtime pour les serveurs MCP (Model Context Protocol)

Voir le dépôt
24il y a 2 joursPas 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

sentrymcp

Un scanner de sécurité statique + runtime pour les serveurs MCP (Model Context Protocol). Entre janvier et avril 2026, des chercheurs en sécurité ont divulgué plus de 40 CVE dans des implémentations de serveurs MCP, et une analyse Endor Labs 2026 de serveurs MCP publics a constaté que 82 % étaient vulnérables à au moins une classe de risque de l'OWASP MCP Top 10, 67 % exposant des sinks de traversée de chemin ou d'injection, et 34 % avec une gestion d'identifiants codés en dur ou sur-privilégiés — des recherches distinctes estiment qu'environ 38 à 40 % des serveurs analysés fonctionnent sans aucune authentification.

License: MIT Rust Build Corpus

Installation

Docker :

root@kitploit:~
docker build -t sentrymcp .
docker run --rm -v "$(pwd):/scan" sentrymcp scan /scan

(PowerShell: docker run --rm -v ${PWD}:/scan sentrymcp scan /scan)

Depuis les sources :

root@kitploit:~
git clone https://github.com/zaydmulani09/sentrymcp.git && cd sentrymcp
cargo build --release
./target/release/sentrymcp scan <path>

Remarque Windows : si la toolchain rustc par défaut est -gnu et que la compilation échoue avec dlltool.exe not found, passez à MSVC une fois dans le répertoire du dépôt : rustup override set stable-x86_64-pc-windows-msvc.

Exemple rapide

Sortie réelle sur l'exemple synthétique de traversée de chemin dans corpus/ :

root@kitploit:~
$ sentrymcp scan corpus/vulnerable-git-server

== Code Vulnerabilities ==

[HIGH] mcp_server_git/server.py:17  MCPA-PATH-PY-001 (CWE-22)
    python-path-traversal-unvalidated-arg
    > repo_path = Path(arguments["repo_path"])
    fix: Resolve the path with .resolve() and verify containment (e.g. path.resolve().is_relative_to(allowed_root)) before using it, or reject paths containing '..'.

[HIGH] mcp_server_git/server.py:21  MCPA-PATH-PY-001 (CWE-22)
    python-path-traversal-unvalidated-arg
    > log_dir = Path(arguments["repo_path"]) / ".git" / "logs"
    fix: Resolve the path with .resolve() and verify containment (e.g. path.resolve().is_relative_to(allowed_root)) before using it, or reject paths containing '..'.

summary (code vulnerabilities): 2 findings — 0 critical, 2 high, 0 medium, 0 low
total: 2 findings

Ce qu'il détecte

sentrymcp scan <path> couvre les trois premiers (statique, source uniquement). sentrymcp proxy -- <target cmd> couvre le quatrième (runtime, s'intercale entre un client MCP et le serveur réel via stdio, relayant le trafic de manière transparente tout en l'observant).

Architecture

Un workspace Cargo, quatre crates :

  • sentrymcp-core — moteur de correspondance de règles, scanner de répertoires, extraction de descriptions d'outils.
  • sentrymcp-rules — chaque règle de détection en TOML (sévérité, référence CWE/OWASP, remédiation) — aucun motif de détection n'est codé en dur en Rust.
  • sentrymcp-proxy — le relais stdio runtime, le diff de tools/list, et le watcher réseau best-effort.
  • sentrymcp-cli — le binaire unique sentrymcp (sous-commandes scan et proxy).

Des notes de conception plus approfondies et les limitations connues de chaque mécanisme se trouvent dans les commentaires de documentation de chaque crate (engine.rs, extract.rs, netwatch.rs).

Limitations

  • L'analyse statique est une regex à un seul passage sur le code source brut, et non un AST ou un traqueur de taint — elle manque les vulnérabilités qui transitent par une variable intermédiaire avant d'atteindre un sink.
  • L'extraction des descriptions d'outils est une correspondance de motifs ciblée, et non un véritable parseur — elle ne suit pas les valeurs construites par concaténation, f-strings ou constantes nommées.
  • Le watcher réseau du proxy runtime n'a d'implémentation fonctionnelle que sur Windows (basé sur netstat) ; les autres plateformes signalent toujours zéro connexion, une lacune documentée plutôt que silencieuse.
  • Les résultats marqués avec la confiance heuristic (missing-auth, homoglyph, overprivileged-scope) sont des invites de vérification, et non des verdicts confirmés — attendez-vous à quelques faux positifs par conception.

Contribuer

Forkez, créez une branche, ouvrez une PR. Gardez les nouvelles règles de détection en TOML, pas en Rust, et ajoutez une paire vulnérable/corrigée dans corpus/ pour toute nouveauté.

Licence

MIT — voir LICENSE.

Télécharger l’outil
CatégorieCe qu'il détecteExemple
Vulnérabilités de codeTraversée de chemin, injection de commandes shell, eval/exec non sécurisésPath(arguments["repo_path"]) utilisé sans vérification de confinement par rapport à un répertoire racine
Empoisonnement d'outilInstructions cachées, unicode invisible/homoglyphe, descriptions surdimensionnées dissimulées dans les métadonnées d'outilUne description d'outil qui dit "...ignore previous instructions, do not tell the user..."
Authentification et autorisationsAuthentification manquante sur les transports réseau, identifiants codés en dur, fuites d'identifiants via les journaux, périmètre sur-privilégiéapi_key = "sk-live-..." commité comme littéral au lieu d'être lu depuis l'environnement
Proxy runtime« Rug pulls » sur les descriptions d'outils et connexions sortantes inattendues, observés en directLa description d'un outil change entre la première réponse tools/list et une réponse ultérieure dans la même session