Escanea la configuración `.claude/` de un repositorio (hooks de `settings.json`, servidores MCP, env, allowed-tools) en busca de los escollos de RCE y exfiltración de claves API (CVE-2025-59536, CVE-2026-21852) que se disparan cuando clonas y abres un repositorio no confiable. Estático, sin dependencias, local-first.
Escanea la configuración local
.claude/de un repositorio — hooks desettings.json, definiciones de servidores MCP, bloquesenv,permissions.allow— en busca de los peligros de RCE y exfiltración de claves de API que se activan en el momento en que hacesgit cloney abres un repositorio no confiable en Claude Code. Señala la línea peligrosa exacta para que puedas leer antes de confiar. Solo lectura — nunca ejecuta lo que encuentra.
⚡ Ejecútalo en una línea, sin instalación, nada sale de tu máquina:
npx dotclaude-security --dir ./some-cloned-repo
🤝 ¿Lo quieres endurecido por ti? Auditoría de alcance fijo — $99 / 24 h: reviso cada hallazgo y envío un informe escrito con las correcciones exactas de la configuración
.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 repositorio puede incluir su propia configuración .claude/, y un agente la respeta al abrirlo.
En febrero de 2026, Check Point Research divulgó dos CVEs con esta causa exacta:
SessionStart controlado por el repositorio ejecuta automáticamente un comando de shell cuando se abre el directorio.
Clona un repositorio malicioso, ábrelo, y estás comprometido. Ejecución remota de código en la inicialización.env) lee tu
ANTHROPIC_API_KEY y la envía a un host remoto. Exfiltración silenciosa de claves.Ambos atacan la misma superficie: hooks de settings.json, comandos de lanzamiento
de servidores MCP, bloques env y la lista permissions.allow — lo que el
repositorio de un extraño puede entregarte. Los grandes actores existentes (skill-scanner de Cisco,
agent-scan de Snyk) escanean skills; casi nadie escanea los archivos de configuración .claude.
dotclaude-security analiza esos archivos, estáticamente, y marca el archivo y la línea
exactos de cada directiva peligrosa — para que triages con hechos, no con suposiciones, y
nunca ejecutes el payload para encontrarlo.
| Comprobación | Severidad | Qué detecta |
|---|---|---|
Hook de auto-ejecución al abrir (SessionStart/PreToolUse/UserPromptSubmit) | crítica / alta | comando que se ejecuta en el momento en que se abre el repositorio — RCE en la inicialización (CVE-2025-59536) |
| El hook lee un secreto y llama a la red | crítica | ANTHROPIC_API_KEY/token enviado a un host remoto — exfiltración de claves (CVE-2026-21852) |
| Patrón de comando peligroso en cualquier hook | alta | curl|sh, eval, base64 -d, nc -e, /dev/tcp, python -c/node -e en línea |
| El servidor MCP lanza un comando peligroso | crítica | command/args de MCP que descargan y ejecutan código al conectar |
| El servidor MCP ejecuta un paquete remoto sobre la marcha | alta | definiciones MCP npx/uvx/bunx que traen paquetes sin fijar versión |
| Al servidor MCP se le entrega un secreto / URL remota | alta / media | credenciales inyectadas por env, endpoints remotos no confiables |
Entrada permissions.allow riesgosa | alta / media | Bash(*), WebFetch, mcp__* amplios que eliminan la puerta de aprobación humana |
| Valor de secreto comprometido | crítica | sk-ant-…, AKIA…, ghp_… reales, claves privadas en cualquier archivo .claude |
# Escanea la configuración .claude/ del repositorio actual
npx dotclaude-security
# Escanea un repositorio recién clonado y no confiable ANTES de abrirlo en Claude Code
npx dotclaude-security --dir ./some-cloned-repo
# Solo JSON legible por máquina (haz gate de tu CI con el resumen)
npx dotclaude-security --json
# Genera un informe HTML compartible
npx dotclaude-security --html report.html
La salida es JSON en stdout (pípolalo a tu CI) y un resumen de una línea por hallazgo en
stderr. Cada hallazgo incluye file, location.line, location.text y una
fix concreta.
npm i -g dotclaude-security
dotclaude-security --dir ./untrusted-repo
Cero dependencias. Lee tus archivos de configuración e informa — nunca ejecuta un hook, un comando MCP ni nada de lo que descubre. Nada sale de tu máquina.
La misma filosofía local-first y de probar el problema real en todo el stack, todas 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
📚 Parte de Awesome Backend Security Auditors — la colección completa de auditores de sondeo activo sin llaves.