
AI-first security scanner. NEW in v2026.7: Claude Code compromise detection — vet .claude/ hooks, permissions & skills before you clone — plus an always-on AI attack-signature scanner and native Rust & PHP rules. Also: medusa scan --git to vet any repo, medusa secrets scan for leaked API keys. 40,000+ patterns, zero setup.
Escáner de seguridad centrado en IA con más de 40.000 patrones de detección para aplicaciones de IA/ML, agentes y LLM.
🤖 Funciona de inmediato: no requiere instalación de herramientas.
🚨 200 CVEs: Log4Shell, Spring4Shell, XZ Utils, LangChain RCE, MCP-Remote RCE, React2Shell
🔥 medusa scan --git <URL> — Escanea cualquier repositorio en busca de ataques a la cadena de suministro de IA (envenenamiento de repositorios, inyección de prompts, envenenamiento de herramientas MCP)
🔐 medusa secrets scan — Encuentra claves API filtradas en tu historial de Claude / Cursor / Copilot / shell. 21 tipos de emisores. Redacción interactiva in situ.
🚀 v2026.7.0: detección de compromiso de Claude Code, un escáner de firmas de ataque de IA siempre activo, reglas de seguridad nativas para Rust y PHP, y diagnósticos a nivel de regla — además de más de 40.000 patrones de detección.
MEDUSA es un escáner de seguridad centrado en IA con más de 40.000 patrones de detección que funciona de inmediato. Simplemente instala y escanea; no se requiere instalación de herramientas externas. Las reglas integradas de MEDUSA detectan vulnerabilidades en aplicaciones de IA/ML, agentes LLM, servidores MCP, pipelines RAG y código tradicional.
medusa scan --git <URL> - Escanea cualquier repositorio de GitHub en busca de ataques a la cadena de suministro de IA en segundosmedusa secrets scan + purge - Encuentra claves API / tokens / claves privadas filtradas en los historiales de chat de Claude Code / Cursor / Copilot / Zed / Gemini y en tu historial de REPL de bash / zsh / psql / mysql / python. 21 tipos de emisores (Anthropic, OpenAI, PyPI, GitHub PATs, AWS, GCP, Stripe, Slack…). Purga interactiva [y/n/s/a/q] con copia de seguridad obligatoria byte-idéntica y redacción segura para JSONL. Solo local, sin telemetría.pip install; no se necesita instalar herramientas.medusa.yml para ajustes específicos del proyectoDetección de cadena de suministro para Claude Code, mayor cobertura de lenguajes y observabilidad a nivel de regla.
v2026.5.12 — El mayor lanzamiento de patrones: de 9,600 a más de 40,000 patrones de detección extraídos de 8,466 artículos de investigación en seguridad de IA, endurecidos contra falsos positivos; escáner estructural de integridad de reglas.
v2026.5.10 — Endurecimiento de seguridad: corrección de inyección de comandos en la extensión de VS Code, error de hallazgos en caché --fail-on, corrección de rutas obsoletas en la caché de herramientas, configuraciones MCP del directorio personal del usuario ahora opt-in.
v2026.5.9 — Cobertura de comercio agéntico: UCPScanner + AP2Scanner + 45 reglas de patrones positivos ajustadas manualmente.
v2026.5.8 — medusa secrets: escanea historiales de chat de IA y shell en busca de credenciales filtradas (21 tipos de emisores) con purga interactiva [y/n/s/a/q].
v2026.5.7 — Reglas de inyección indirecta de prompts (101/102), escáner de importaciones de cadena de suministro, corrección de multiprocesamiento en macOS/Windows.
v2026.5.5 — Lanzamiento de endurecimiento de seguridad (defensas contra inyección de argv, SSRF en git, integridad de caché HMAC, corrección de XSS en Markdown).
Linters externos (opcional): MEDUSA detecta automáticamente bandit, eslint, shellcheck, etc., si están instalados. Consulta la Guía de herramientas opcionales.
Tu token de PyPI podría estar ahora mismo en tu historial de chat de Claude.
Los desarrolladores pegan claves API, tokens y credenciales en asistentes de IA todos los días:
«despliega esto con pypi-AgEI...», «usa mi ghp_... para hacer push», «la clave de AWS es AKIA...».
Los asistentes guardan esas conversaciones en texto plano en el disco. Cualquier persona con acceso de lectura
a $HOME — o cualquier malware futuro con acceso a shell — puede ejecutar grep -r 'sk-\|ghp_\|AKIA' ~/
y cosechar credenciales de producción en segundos.
medusa secrets scan las encuentra. medusa secrets purge las limpia.
medusa secrets scan
:```text
Scanning 118 file(s)...
── claude-code ──────────────────────────────────────────────
/home/ross/.claude/history.jsonl (13 finding(s))
[CRITICAL] Anthropic API key (anthropic)
/home/ross/.claude/history.jsonl:1005:13
sk-ant-api03***...***
[CRITICAL] PyPI API token (pypi)
/home/ross/.claude/history.jsonl:125:94
pypi-AgEIc***...***
[CRITICAL] GitHub fine-grained PAT (github)
/home/ross/.claude/history.jsonl:2306:13
github_pat_11A***...***
[HIGH] HuggingFace token (huggingface)
/home/ross/.claude/history.jsonl:3387:13
hf_JOi***...***
...
Total: 13 credentials across 1 file(s).
Report: /home/ross/.medusa/secrets-scan/secrets-20260519-074452.json
No input content was provided — the message ends with "INPUT:" but contains no text to translate. Please paste chunk 5 of 73 so I can translate it.```bash medusa secrets purge
Esta versión se centra principalmente en múltiples adiciones (como fuerza bruta no lineal, craqueo pasivo, descifrado, craqueo de múltiples claves, etc.), en nuevas características como APi y en la optimización de recursos.
Para obtener una descripción completa de todas las adiciones y cambios (y sus autores), visita el [archivo Changelog](https://github.com/pantheon-security/medusa/blob/HEAD/CHANGELOG.md)```text
[CRITICAL] PyPI API token (pypi)
/home/ross/.claude/history.jsonl:125:94
pypi-AgEIc***...***
redact? [y/n/s/a/q/?]: y
[CRITICAL] Anthropic API key (anthropic)
/home/ross/.claude/history.jsonl:1005:13
sk-ant-api03***...***
redact? [y/n/s/a/q/?]: y
...
✓ /home/ross/.claude/history.jsonl (13 redacted)
backup → /home/ross/.medusa/secrets-scan/backups/20260519-074452/home/ross/.claude/history.jsonl
El archivo original se respalda byte por byte antes de cualquier cambio. JSONL
sigue siendo analizable después de la redacción. El marcador de redacción ([REDACTED-MEDUSA-...-<run-id>])
es único por ejecución, por lo que puedes rastrearlo hasta el escaneo que lo produjo.
medusa secrets scan # everything (default — chat + shell) medusa secrets scan --source ai-chats # AI assistants only medusa secrets scan --source shell # ~/.bash_history, ~/.zsh_history, fish, psql, mysql, ... medusa secrets scan --path FILE # explicit file (e.g. a ChatGPT export) medusa secrets scan --reveal # show real values (requires 'I UNDERSTAND')
medusa secrets purge # interactive [y/n/s/a/q] medusa secrets purge SCAN_ID # purge a specific report medusa secrets purge --all --yes-i-know # batch mode for power users / CI
### Lo que se detecta (21 emisores)
**Proveedores de IA**: Anthropic, OpenAI, HuggingFace, Replicate, Cohere
**Registros de paquetes**: PyPI, npm
**Forjas de código**: GitHub PAT (clásico + fine-grained + OAuth + App), GitLab PAT
**Nube**: claves de acceso AWS, JSON de cuenta de servicio GCP
**Pagos / comunicaciones**: claves live/restricted de Stripe, tokens de bot/usuario de Slack, SendGrid, Twilio, webhooks de Discord
**Criptografía**: claves privadas codificadas en PEM (RSA, DSA, EC, OpenSSH, PGP)
### Propiedades de seguridad
- **Solo local.** Informes en `~/.medusa/secrets-scan/` con modo `0o600`. Sin red, sin telemetría, nunca se escribe en los árboles del proyecto.
- **Copia de seguridad antes de escribir.** Toda redacción va precedida de una copia de seguridad idéntica byte a byte. `cp` la restaura.
- **Seguro para JSONL.** El marcador de redacción no contiene caracteres no seguros para JSON; las líneas afectadas se vuelven a analizar tras la escritura.
- **Rechazo ante cambios.** Si el archivo fuente cambió entre el escaneo y la purga, el purgador se niega en lugar de arriesgarse a sobrescribir una edición.
- **Escritura atómica.** Archivo temporal + intercambio con `os.replace`. O se aplica la reescritura o el original permanece.
[**📖 Guía completa del escáner de secretos →**](https://github.com/pantheon-security/medusa/blob/HEAD/docs/SECRETS_SCANNER.md)
---
## 🚀 Inicio Rápido
### Instalación```bash
# Install MEDUSA (works on Windows, macOS, Linux)
pip install medusa-security
# Run your first scan - that's it!
medusa scan .
Entorno virtual (Recomendado):```bash
python3 -m venv medusa-env source medusa-env/bin/activate # On Windows: medusa-env\Scripts\activate
pip install medusa-security medusa scan .
**Notas de plataforma:**
- **Windows**: Usa `py -m medusa` si el comando `medusa` no se encuentra
- **macOS/Linux**: Debería funcionar sin configuración adicional
### Escanear cualquier repositorio de GitHub```bash
# Scan a remote repo for AI supply chain attacks
medusa scan --git https://github.com/org/repo
# Shorthand - just user/repo
medusa scan --git org/repo
# Scan a specific branch
medusa scan --git https://github.com/org/repo/tree/main
MEDUSA detecta automáticamente 28+ archivos de configuración de editores de IA que son vectores de ataque conocidos:
Ataques conocidos detectados: Clinejection, CurXecute (CVE-2025-54135), IDEsaster (CVE-2025-64660), ToxicSkills, CamoLeak, RoguePilot, AIShellJack, Cacheract
medusa install --ai-tools
### Opcional: Linters externos
MEDUSA detecta automáticamente linters externos si están instalados (bandit, eslint, shellcheck, etc.) y los utiliza automáticamente para mejorar la cobertura del escaneo.
**[Ver Guía de Instalación →](https://github.com/pantheon-security/medusa/blob/HEAD/docs/OPTIONAL_TOOLS.md)** para instrucciones específicas de la plataforma.
> **Nota:** Los linters externos son opcionales. Las 40,000+ reglas integradas de MEDUSA funcionan sin ellos. Para soporte de instalación, consulte la documentación de cada proveedor de herramientas.
### Demo
<div align="center">

</div>
### 📊 Formatos de Informe
MEDUSA genera informes atractivos en múltiples formatos:
**JSON** - Legible por máquina para integración con CI/CD```bash
medusa scan . --format json
HTML - Impresionante interfaz de usuario con glassmorphism y gráficos interactivos```bash medusa scan . --format html
**Markdown** - Apto para documentación en GitHub/wikis```bash
medusa scan . --format markdown
Todos los formatos - Genera todo a la vez```bash medusa scan . --format all
---
## 📚 Soporte de Idiomas
MEDUSA admite **79 tipos de escáner** que cubren seguridad de IA/ML, todos los principales lenguajes de programación y formatos de archivo:
### Lenguajes Backend (9)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Python | Bandit | `.py` |
| JavaScript/TypeScript | ESLint | `.js`, `.jsx`, `.ts`, `.tsx` |
| Go | golangci-lint | `.go` |
| Ruby | RuboCop | `.rb`, `.rake`, `.gemspec` |
| PHP | Reglas nativas (+ PHPStan opcional) | `.php` |
| Rust | Reglas nativas (+ Clippy opcional) | `.rs` |
| Java | Checkstyle | `.java` |
| C/C++ | cppcheck | `.c`, `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp` |
| C# | Roslynator | `.cs` |
### Lenguajes JVM (3)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Kotlin | ktlint | `.kt`, `.kts` |
| Scala | Scalastyle | `.scala` |
| Groovy | CodeNarc | `.groovy`, `.gradle` |
### Lenguajes Funcionales (5)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Haskell | HLint | `.hs`, `.lhs` |
| Elixir | Credo | `.ex`, `.exs` |
| Erlang | Elvis | `.erl`, `.hrl` |
| F# | FSharpLint | `.fs`, `.fsx` |
| Clojure | clj-kondo | `.clj`, `.cljs`, `.cljc` |
### Desarrollo Móvil (2)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Swift | SwiftLint | `.swift` |
| Objective-C | OCLint | `.m`, `.mm` |
### Frontend y Estilos (3)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| CSS/SCSS/Sass/Less | Stylelint | `.css`, `.scss`, `.sass`, `.less` |
| HTML | HTMLHint | `.html`, `.htm` |
| Vue.js | ESLint | `.vue` |
### Infraestructura como Código (4)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Terraform | tflint | `.tf`, `.tfvars` |
| Ansible | ansible-lint | `.yml` (playbooks) |
| Kubernetes | kubeval | `.yml`, `.yaml` (manifiestos) |
| CloudFormation | cfn-lint | `.yml`, `.yaml`, `.json` (plantillas) |
### Archivos de Configuración (4)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| JSON | integrado | `.json` |
| TOML | taplo | `.toml` |
| XML | xmllint | `.xml` |
| Protobuf | buf lint | `.proto` |
### Shell y Scripts (4)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Bash/Shell | ShellCheck | `.sh`, `.bash` |
| PowerShell | PSScriptAnalyzer | `.ps1`, `.psm1` |
| Lua | luacheck | `.lua` |
| Perl | perlcritic | `.pl`, `.pm` |
### Documentación (2)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| Markdown | markdownlint | `.md` |
| reStructuredText | rst-lint | `.rst` |
### Otros Lenguajes (5)
| Lenguaje | Escáner | Extensiones |
|----------|---------|------------|
| SQL | SQLFluff | `.sql` |
| R | lintr | `.r`, `.R` |
| Dart | dart analyze | `.dart` |
| Solidity | solhint | `.sol` |
| Docker | hadolint | `Dockerfile*` |
**Total: 79 tipos de escáner — 41 escáneres de lenguaje/herramientas + 38 escáneres de seguridad de IA/ML — que cubren más de 100 extensiones de archivo**
---
## 🚨 Detección de CVE React2Shell (NUEVO en v2025.8)
MEDUSA ahora detecta **CVE-2025-55182 "React2Shell"** - una vulnerabilidad RCE con CVSS 10.0 que afecta a React Server Components y Next.js.```bash
# Check if your project is vulnerable
medusa scan .
# Vulnerable versions detected:
# - React 19.0.0 - 19.2.0 (Server Components)
# - Next.js 15.0.0 - 15.0.4 (App Router)
# - Various canary/rc releases
Scans: package.json, package-lock.json, yarn.lock, pnpm-lock.yaml
Fix: Actualiza a React 19.0.1+ y Next.js 15.0.5+
MEDUSA proporciona escaneo de seguridad de IA líder en la industria con más de 40.000 patrones de detección para la era de la IA agéntica. Actualizado para OWASP Top 10 for LLM Applications 2025 e incluye detección para más de 200 CVEs en editores de codificación de IA y servidores MCP.
Documentación completa de Seguridad de IA
.cursorrules # Cursor AI (CVE-2025-54135) .cursor/rules/.mdc # Cursor rules directory .cursor/mcp.json # Cursor MCP (CurXecute RCE) .clinerules/.md # Cline (Clinejection) .windsurfrules # Windsurf (CVE-2025-36730) .windsurf/rules/* # Windsurf workspace rules .codex/config.toml # Codex CLI (CVE-2025-61260) .kiro/settings/mcp.json # Kiro (CVE-2026-0830) .vscode/settings.json # VS Code (IDEsaster) *.code-workspace # VS Code workspace mcp.json / .mcp.json # MCP server configs
CLAUDE.md # Claude Code GEMINI.md # Gemini CLI AGENTS.md # OpenAI Codex AGENT.md # Roo Code SKILL.md # ClawHub/ToxicSkills CONVENTIONS.md # Aider .github/copilot-instructions.md # GitHub Copilot .amazonq/rules/.md # Amazon Q Developer .augment/rules/ # Augment Code .roo/rules/.md # Roo Code .tabnine/guidelines/.md # Tabnine .continue/config.yaml # Continue.dev .cody.yml # Sourcegraph Cody
### Escaneo rápido de seguridad con IA```bash
# Scan AI configuration files
medusa scan . --ai-only
# Example output:
# 🔍 AI Security Scan Results
# ├── .cursorrules: 3 issues (1 CRITICAL, 2 HIGH)
# │ └── AIC001: Prompt injection - ignore previous instructions (line 15)
# │ └── AIC011: Tool shadowing - override default tools (line 23)
# ├── mcp-config.json: 2 issues (2 HIGH)
# │ └── MCP003: Dangerous path - home directory access (line 8)
# └── rag_config.json: 1 issue (1 CRITICAL)
# └── AIR010: Knowledge base injection pattern detected (line 45)
medusa init
medusa scan .
medusa scan /path/to/project
medusa scan . --quick
medusa scan . --force
medusa scan . --workers 4
medusa scan . --fail-on high
medusa scan . -o /tmp/reports
### Comandos de instalación```bash
# Check tool status
medusa install --check
# Install AI tools (modelscan for ML model scanning)
medusa install --ai-tools
# Show detailed output
medusa install --ai-tools --debug
Nota: MEDUSA v2026.2+ ya no instala linters externos. Instálalos mediante tu gestor de paquetes (apt, brew, npm, pip) si es necesario. MEDUSA detecta automáticamente y utiliza cualquier linter instalado.
medusa init
medusa init --ide claude-code
medusa init --ide claude-code --ide gemini-cli --ide cursor
medusa init --ide all
medusa init --force
medusa init --install
### Comandos adicionales```bash
# Uninstall modelscan
medusa uninstall modelscan
# Check for updates
medusa version --check-updates
# Show current configuration
medusa config
# Override scanner for specific file
medusa override path/to/file.yaml YAMLScanner
# List available scanners
medusa override --list
# Show current overrides
medusa override --show
# Remove override
medusa override path/to/file.yaml --remove
| Opción | Descripción |
|---|---|
--check | Comprobar el estado de la herramienta |
--ai-tools | Instalar herramientas de seguridad de IA (modelscan) |
--debug | Mostrar salida de depuración detallada |
Cambio en v2026.2+: MEDUSA ya no gestiona la instalación de linters externos. La opción
--allestá en desuso. Instala los linters externos mediante el gestor de paquetes de tu sistema si es necesario.
.medusa.ymlMEDUSA utiliza un archivo de configuración YAML para ajustes específicos del proyecto:```yaml
version: 2026.5.5
scanners: enabled: [] # Empty = all scanners enabled disabled: [] # List scanners to disable
fail_on: high # critical | high | medium | low
exclude: paths: - node_modules/ - venv/ - .venv/ - .git/ - pycache/ - dist/ - build/ files: - ".min.js" - ".min.css"
ide: claude_code: enabled: true auto_scan: true cursor: enabled: false vscode: enabled: false
workers: null # null = auto-detect CPU cores cache_enabled: true # Enable file caching for speed
### Generar Configuración Predeterminada```bash
medusa init
Esto crea .medusa.yml con valores predeterminados razonables y detecta automáticamente tu IDE.
MEDUSA admite 5 asistentes de codificación de IA con integraciones nativas. Inicializa con medusa init --ide all o selecciona plataformas específicas.
medusa init --ide all
medusa init --ide claude-code --ide gemini-cli
### Claude Code
**Lo que crea:**
- `CLAUDE.md` - Archivo de contexto del proyecto
- `.claude/agents/medusa/agent.json` - Configuración del agente
- `.claude/commands/medusa-scan.md` - Comando de barra para el escaneo
- `.claude/commands/medusa-install.md` - Comando de barra para la instalación
**Uso:**```
Type: /medusa-scan
Claude: *runs security scan*
Results: Displayed in terminal + chat
Lo que crea:
GEMINI.md - Archivo de contexto del proyecto.gemini/commands/scan.toml - Configuración del comando de escaneo.gemini/commands/install.toml - Configuración del comando de instalaciónUso:```bash gemini /scan # Full scan gemini /scan --quick # Quick scan gemini /install --check # Check tools
### OpenAI Codex
**Qué crea:**
- `AGENTS.md` - Contexto del proyecto (nivel raíz)
**Uso:**```
Ask: "Run a security scan"
Codex: *executes medusa scan .*
Qué crea:
.github/copilot-instructions.md - Estándares de seguridad y mejores prácticasCómo ayuda:
Qué crea:
.cursor/mcp-config.json - Configuración del servidor MCP.claude/ (Cursor es un fork de VS Code)Uso:
MEDUSA monitorea automáticamente la carga del sistema y ajusta el número de trabajadores:```python
⚠️ High CPU usage: 85.3% Using 2 workers (reduced due to system load)
### Caché Inteligente
El caché basado en hash omite archivos sin cambios:```bash
# First scan
📂 Files scanned: 145
⏱️ Total time: 47.28s
# Second scan (no changes)
📂 Files scanned: 0
⚡ Files cached: 145
⏱️ Total time: 2.15s # 22× faster!
Escaneo multinúcleo para aceleraciones masivas:``` Single-threaded: 417.5 seconds 6 workers: 47.3 seconds # 8.8× faster 24 workers: ~18 seconds # 23× faster
---
## 📊 Ejemplo de Flujo de Trabajo
### Configuración de Nuevo Proyecto```bash
# 1. Initialize
cd my-awesome-project
medusa init
🐍 MEDUSA Initialization Wizard
✅ Step 1: Project Analysis
Found 15 language types
Primary: PythonScanner (44 files)
✅ Step 2: Scanner Availability
Available: 6/79 scanners
Missing: 73 tools
✅ Step 3: Configuration
Created .medusa.yml
Auto-detected IDE: Claude Code
✅ Step 4: IDE Integration
Created .claude/agents/medusa/agent.json
Created .claude/commands/medusa-scan.md
✅ MEDUSA Initialized Successfully!
# 2. First scan
medusa scan .
🔍 Issues found: 23
CRITICAL: 0
HIGH: 2
MEDIUM: 18
LOW: 3
# 3. Fix issues and rescan
medusa scan . --quick
⚡ Files cached: 142
🔍 Issues found: 12 # Progress!
name: Security Scan
on: [push, pull_request]
jobs: medusa: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install MEDUSA
run: pip install medusa-security
- name: Run security scan
run: medusa scan . --fail-on high
> **Nota**: No se necesita ningún paso de instalación de herramientas - las 40,000+ reglas integradas de MEDUSA funcionan inmediatamente.
---
## 🏗️ Arquitectura
### Patrón del escáner
Todos los escáneres siguen un patrón consistente:```python
class PythonScanner(BaseScanner):
"""Scanner for Python files using Bandit"""
def get_tool_name(self) -> str:
return "bandit"
def get_file_extensions(self) -> List[str]:
return [".py"]
def scan_file(self, file_path: Path) -> ScannerResult:
# Run bandit on file
# Parse JSON output
# Map severity levels
# Return structured issues
return ScannerResult(...)
Los escáneres se registran automáticamente:```python
registry = ScannerRegistry() registry.register(PythonScanner()) registry.register(JavaScriptScanner())
### Mapa de Severidad
Niveles de severidad unificados en todas las herramientas:
- **CRITICAL** - Vulnerabilidades de seguridad, errores fatales
- **HIGH** - Errores, advertencias de seguridad
- **MEDIUM** - Advertencias, problemas de calidad de código
- **LOW** - Problemas de estilo, convenciones
- **INFO** - Sugerencias, oportunidades de refactorización
---
## 🧪 Pruebas y Calidad
### Resultados de Dogfooding
MEDUSA se escanea a sí misma — y proyectos del mundo real:```
Self-scan (473 files):
✅ Issues found: 114 (pre-filter) → 0 (post-filter)
✅ FP reduction: 100% on own codebase
⏱️ Time: 8.2s
OpenClaw benchmark (4,124 files, 751K LOC):
🔍 Issues found: 825 (post-filter)
✅ FPs filtered: 11,436 (93.9% reduction)
⏱️ Time: 3.3 hours (79 scanners)
*El tiempo de los proyectos grandes está dominado por subprocesos de herramientas externas (Semgrep, Trivy, GitLeaks). El escaneo de patrones integrado es casi instantáneo.
medusa scan --git <URL> - Escanea cualquier repositorio de GitHub en busca de ataques a la cadena de suministro de IA¡Las contribuciones son bienvenidas! Así es como puedes empezar:```bash
git clone https://github.com/yourusername/medusa.git cd medusa
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e ".[dev]"
pytest
git checkout -b feature/my-awesome-feature
medusa scan . # Dogfood your changes!
git push origin feature/my-awesome-feature
### Añadir Nuevos Escáneres
Consulta `docs/development/adding-scanners.md` para una guía sobre cómo añadir soporte para nuevos lenguajes.
---
## 📜 Licencia
AGPL-3.0-or-later - Consulta el archivo [LICENSE](https://github.com/pantheon-security/medusa/blob/HEAD/LICENSE)
MEDUSA es software libre y de código abierto. Puedes usarlo, modificarlo y distribuirlo libremente, pero cualquier modificación u obra derivada (incluidos los despliegues SaaS) también debe publicarse bajo AGPL-3.0.
Para opciones de licencia comercial, contacta: [email protected]
---
## Próximamente
MEDUSA Professional añade **protección en tiempo de ejecución** para aplicaciones LLM en producción: bloquea la inyección de prompts, el jailbreaking y los intentos de exfiltración de datos en tiempo real antes de que lleguen a tus modelos.
| Característica | Open Source | Professional | Enterprise |
|---------|-------------|--------------|------------|
| Escaneo estático (más de 40 000 patrones) | Sí | Sí | Sí |
| Filtros de proxy en tiempo de ejecución (más de 1 100) | - | Sí | Sí |
| API REST y webhooks | - | Sí | Sí |
| Reglas personalizadas y SSO | - | - | Sí |
| **Precio** | Gratis | $99/dev/mes | $499/50 devs/mes |
El proxy de tiempo de ejecución está actualmente en beta privada. Si proteges aplicaciones LLM en producción y quieres acceso anticipado, contacta con **[email protected]**.
---
## 🙏 Créditos
**Desarrollo:**
- Pantheon Security
- Claude AI (Anthropic) - desarrollo asistido por IA
**Construido con:**
- Python 3.10+
- Click - framework de CLI
- Rich - formato de terminal
- Bandit, ESLint, ShellCheck y más de 39 otras herramientas de seguridad de código abierto
**Inspirado por:**
- Bandit (seguridad de Python)
- SonarQube (análisis multilingüe)
- Semgrep (seguridad basada en patrones)
- Mega-Linter (linting integral)
---
## 📖 Guías
- **[Inicio rápido](https://github.com/pantheon-security/medusa/blob/HEAD/docs/guides/quick-start.md)** - En funcionamiento en 5 minutos
- **[Escaneo de seguridad de IA](https://github.com/pantheon-security/medusa/blob/HEAD/docs/AI_SECURITY.md)** - Guía completa de seguridad IA/LLM (OWASP 2025, MCP, RAG)
- **[Gestión de falsos positivos](https://github.com/pantheon-security/medusa/blob/HEAD/docs/guides/handling-false-positives.md)** - Reduce el ruido, encuentra problemas reales
- **[Integración con IDE](https://github.com/pantheon-security/medusa/blob/HEAD/docs/guides/ide-integration.md)** - Configura Claude Code, Gemini, Copilot
---
## 📞 Soporte
- **GitHub Issues**: [Reporta errores o solicita funciones](https://github.com/Pantheon-Security/medusa/issues)
- **Correo electrónico**: [email protected]
- **Documentación**: https://docs.pantheonsecurity.io
- **Discord**: https://discord.gg/medusa (próximamente)
---
## 📈 Estadísticas
**Versión**: 2026.5.5
**Fecha de lanzamiento**: 2026-04-03
**Patrones de detección**: más de 40 000 reglas de seguridad de IA
**Analizadores**: 79 escáneres especializados
**Patrones de filtro de FP**: 514 filtros inteligentes (tasa de reducción del 96.8%)
**Cobertura CVE**: 200 vulnerabilidades críticas (más de 37 CVE de editores de IA)
**Envenenamiento de repositorios**: se detectan más de 28 tipos de archivos de configuración de editores de IA
**Cobertura de lenguajes**: más de 46 tipos de archivos
**Soporte de plataformas**: Linux, macOS, Windows
**Integración con IA**: Claude Code, Gemini CLI, GitHub Copilot, Cursor, OpenAI Codex
**Estándares**: OWASP Top 10 para LLM 2025, MITRE ATLAS
**Descargas**: más de 11 500 en PyPI
---
## 🌟 ¿Por qué MEDUSA?
### vs. Bandit
- ✅ Más de 40 000 patrones (no solo seguridad de Python)
- ✅ Cobertura de seguridad IA/ML
- ✅ Sin configuración previa necesaria
- ✅ Integración con IDE
### vs. SonarQube
- ✅ Configuración más sencilla (`pip install && scan`)
- ✅ Sin necesidad de servidor
- ✅ Enfoque de seguridad centrado en IA
- ✅ Gratis y de código abierto
### vs. Semgrep
- ✅ Reglas específicas de IA/ML integradas
- ✅ Seguridad de MCP, RAG y agentes
- ✅ Mejor integración con IDE
- ✅ Sin necesidad de configurar reglas
### vs. SAST tradicional
- ✅ Funciona de inmediato (sin instalación de herramientas)
- ✅ Patrones de seguridad de IA incluidos
- ✅ Procesamiento en paralelo
- ✅ Caché inteligente
---
**🐍🐍🐍 MEDUSA - Escáner de Seguridad Multilenguaje 🐍🐍🐍**
**Un solo comando. Seguridad completa.**```bash
medusa init && medusa scan .
Última actualización: 2026-04-03 Estado: Listo para producción Versión actual: v2026.5.5 - Endurecimiento de seguridad
| Cambio | Detalles |
|---|
| 🛡️ | Detección de compromiso de Claude Code | medusa scan --git ahora examina estructuralmente .claude/ — hooks envenenados (curl|bash, base64→exec, exfiltración de credenciales, reverse shells), permisos demasiado amplios (Bash(*), bypassPermissions), subagentes con herramientas comodín y skills dropper — antes de que clonas. |
| 🎯 | Escáner de firmas de ataque siempre activo | Cierra una brecha de falsos negativos: ahora se detectan cargas útiles de jailbreak / inyección de prompts en archivos de datos (.jsonl/.csv) y en prosa, independientemente de la confianza del contexto LLM, además de la recuperación de unicode invisible / bidi (Trojan Source, CVE-2021-42574). |
| 🦀 | Reglas de seguridad nativas para Rust | 22 reglas listas para usar (sin necesidad de toolchain): verificación TLS deshabilitada, inyección de comandos, deserialización no confiable, SQL crudo, operaciones de memoria no seguras, criptografía débil, SSRF. |
| 🐘 | Reglas de seguridad nativas para PHP | 16 reglas listas para usar: SQLi, inyección de comandos/eval, LFI/RFI, path traversal, inyección de objetos unserialize(), subida sin restricciones, XSS reflejado, SSRF, criptografía débil. |
| 🔬 | Diagnósticos de reglas (--trace-rules) | Registro de activación por regla + tiempos (rule-trace.jsonl, slow_rules.csv) y un heartbeat resistente a cuelgues: encontramos y corregimos un ReDoS real de retroceso catastrófico, además de un lint de ReDoS/conjuntos anidados que bloquea patrones malos en el momento de autoría. |
| ⚡ | Motor + precisión | Mejoras rápidas de rendimiento del motor de escaneo, modo de selección consciente del contexto para la evaluación de objetivos --git, muestreo con límite de bytes para archivos grandes y una corrección de falsos positivos de secretos en marcadores de documentación. |
| Nivel de riesgo | Archivos detectados |
|---|
| Crítico (RCE) | .cursorrules, .cursor/mcp.json, .clinerules/, .windsurfrules, .codex/config.toml, .kiro/settings/mcp.json, .vscode/settings.json, mcp.json |
| Alto | CLAUDE.md, GEMINI.md, AGENTS.md, AGENT.md, SKILL.md, .github/copilot-instructions.md, CONVENTIONS.md, .amazonq/rules/, .roo/rules/, .augment/rules/ |
| Categoría | Patrones | Detecta |
|---|
| Inyección de Prompt | 800+ | Inyección directa/indirecta, jailbreaks, manipulación de roles |
| Seguridad de Servidores MCP | 400+ | Envenenamiento de herramientas, envenenamiento de esquemas, ATPA, inyección de muestreo, rug-pull |
| Envenenamiento de Repositorios | 150+ | Configuraciones de editores de IA armadas, Clinejection, CurXecute, IDEsaster, CamoLeak |
| Seguridad RAG | 300+ | Inyección de vectores, envenenamiento de documentos, aislamiento de inquilinos |
| Seguridad de Agentes | 500+ | Agencia excesiva, envenenamiento de memoria, bypass de HITL |
| Seguridad de Modelos | 400+ | Carga insegura, exposición de checkpoints, ataques adversariales |
| Cadena de Suministro | 350+ | Confusión de dependencias, typosquatting, puertas traseras en archivos lock |
| SAST Tradicional | 1,400+ | Inyección SQL, XSS, inyección de comandos, secretos |
|
Ataques de Contexto y Entrada
Ataques de Memoria y Estado
Ataques de Herramientas y Acciones
|
Ataques de Flujo de Trabajo y Enrutamiento
Ataques RAG y de Conocimiento
Ataques Avanzados
|
| Opción | Descripción |
|---|
TARGET | Directorio o archivo a escanear (predeterminado: .) |
-g, --git URL | Clona y escanea un repositorio git remoto (URL de GitHub o forma abreviada user/repo) |
-w, --workers N | Número de trabajadores en paralelo (predeterminado: autodetección) |
--quick | Escaneo rápido (solo archivos modificados, requiere git) |
--force | Forzar escaneo completo (ignorar caché) |
--no-cache | Deshabilitar el almacenamiento en caché de resultados |
--fail-on LEVEL | Salir con error según la gravedad: critical, high, medium, low |
-o, --output PATH | Directorio de salida personalizado para informes |
--format FORMAT | Formato de salida: json, html, sarif, junit, text (se pueden especificar varios) |
--no-report | Omitir la generación del informe HTML |
| IDE | Archivo de contexto | Comandos | Estado |
|---|
| Claude Code | CLAUDE.md | /medusa-scan, /medusa-install | ✅ Soporte completo |
| Gemini CLI | GEMINI.md | /scan, /install | ✅ Soporte completo |
| OpenAI Codex | AGENTS.md | Comandos slash nativos | ✅ Soporte completo |
| GitHub Copilot | .github/copilot-instructions.md | Sugerencias de código | ✅ Soporte completo |
| Cursor | Reutiliza CLAUDE.md | Comandos MCP + Claude | ✅ Soporte completo |
| Tamaño del proyecto | Archivos | Tiempo | Velocidad |
|---|
| Pequeño (autoescaneo de MEDUSA) | 473 | ~8s | 59 archivos/s |
| Mediano | 1,000 | ~45s | 22 archivos/s |
| Grande (OpenClaw) | 4,124 | ~3.3h | 0.34 archivos/s* |