Analyse la configuration .claude/ d'un dépôt (hooks settings.json, serveurs MCP, env, allowed-tools) pour détecter les pièges RCE et d'exfiltration de clés API (CVE-2025-59536, CVE-2026-21852) qui se déclenchent lorsque vous clonez et ouvrez un dépôt non fiable. Statique, zéro dépendance, local d'abord.
Analyse la config locale
.claude/d'un dépôt — hookssettings.json, définitions de serveurs MCP, blocsenv,permissions.allow— à la recherche des pièges RCE et d'exfiltration de clés API qui se déclenchent dès que vous faitesgit cloneet ouvrez un dépôt non fiable dans Claude Code. Il pointe la ligne dangereuse exacte pour que vous puissiez lire avant de faire confiance. Lecture seule — il n'exécute jamais ce qu'il trouve.
⚡ Exécutez-le en une ligne, sans installation, rien ne quitte votre machine :
npx dotclaude-security --dir ./some-cloned-repo
🤝 Vous voulez qu'il soit durci pour vous ? Audit à périmètre fixe — 99 $ / 24 h : j'examine chaque résultat et j'envoie un rapport écrit avec les correctifs exacts de la config
.claude.
$ npx dotclaude-security --dir ./untrusted-repo
1 critical, 2 high, 0 medium across 1 config file(s).
CRITICAL .claude/settings.json:4 Auto-exec hook on "SessionStart" runs a command when the repo is opened
HIGH .claude/settings.json:7 permissions.allow pre-approves a dangerous tool: Bash(*)
HIGH .claude/settings.json:8 MCP server "x" runs an on-the-fly remote package (npx)
Un dépôt peut embarquer sa propre config .claude/, et un agent l'applique à l'ouverture.
En février 2026, Check Point Research a divulgué deux CVE fondées exactement sur ce principe :
SessionStart contrôlé par le dépôt exécute automatiquement une commande shell dès l'ouverture du répertoire.
Clonez un dépôt malveillant, ouvrez-le, vous êtes compromis. Exécution de code à distance à l'initialisation.env) lit votre
ANTHROPIC_API_KEY et l'expédie à un hôte distant. Exfiltration silencieuse de clé.Les deux attaquent la même surface : les hooks settings.json, les commandes de lancement
des serveurs MCP, les blocs env et la liste permissions.allow — ce qu'un dépôt
inconnu peut vous tendre. Les grands acteurs établis (skill-scanner de Cisco, agent-scan
de Snyk) analysent les skills ; presque personne n'analyse les fichiers de config .claude.
dotclaude-security analyse ces fichiers, de façon statique, et signale le fichier + la ligne
exacts de chaque directive dangereuse — pour que vous triiez des faits, pas des suppositions, et
que vous n'exécutiez jamais le payload pour le découvrir.
| Vérification | Sévérité | Ce qu'il détecte |
|---|---|---|
Hook auto-exécuté à l'ouverture (SessionStart/PreToolUse/UserPromptSubmit) | critique / élevée | commande qui s'exécute dès l'ouverture du dépôt — RCE à l'init (CVE-2025-59536) |
| Un hook lit un secret et appelle le réseau | critique | ANTHROPIC_API_KEY/jeton redirigé vers un hôte distant — exfiltration de clé (CVE-2026-21852) |
| Motif de commande dangereuse dans un hook | élevée | curl|sh, eval, base64 -d, nc -e, /dev/tcp, python -c/node -e en ligne |
| Un serveur MCP lance une commande dangereuse | critique | command/args MCP qui récupèrent et exécutent du code à la connexion |
| Un serveur MCP exécute un paquet distant à la volée | élevée | définitions MCP npx/uvx/bunx qui tirent des paquets non épinglés |
| Un serveur MCP reçoit un secret / une URL distante | élevée / moyenne | identifiants injectés via env, endpoints distants non fiables |
Entrée permissions.allow risquée | élevée / moyenne | Bash(*), WebFetch, mcp__* trop large qui supprime la barrière d'approbation humaine |
| Valeur secrète committée | critique | de véritables sk-ant-…, AKIA…, ghp_…, clés privées dans tout fichier .claude |
# Scan the .claude/ config in the current repo
npx dotclaude-security
# Scan a freshly cloned, untrusted repo BEFORE you open it in Claude Code
npx dotclaude-security --dir ./some-cloned-repo
# Machine-readable JSON only (gate your CI on the summary)
npx dotclaude-security --json
# Write a shareable HTML report
npx dotclaude-security --html report.html
La sortie est du JSON sur stdout (à rediriger dans votre CI) et un résumé d'une ligne par
résultat sur stderr. Chaque résultat contient file, location.line, location.text et un
fix concret.
npm i -g dotclaude-security
dotclaude-security --dir ./untrusted-repo
Zéro dépendance. Il lit vos fichiers de config et fait un rapport — il n'exécute jamais un hook, une commande MCP ou quoi que ce soit d'autre qu'il découvre. Rien ne quitte votre machine.
Même philosophie local-first, prouver le vrai problème, sur toute la stack, tous en MIT :
supabase-security · strapi-security · pocketbase-security · firebase-security · appwrite-security · nhost-security · stripe-webhook-security · github-actions-security · aws-s3-security
MIT © Renzo Madueno
📚 Fait partie de Awesome Backend Security Auditors — la collection complète d'auditeurs keyless à sonde active.