el primer scanner de la era ia

Snyk y Semgrep escanean código.VCEye escanea cómo te van a hackear.

Prompt injection. Tool poisoning en MCPs. RCE vía LangChain (CVE-2025-68664). RLS recursivo en Supabase. Slopsquatting de paquetes alucinados por IA. Mientras los scanners legacy actualizan reglas, nosotros diseñamos patterns desde cero para cómo se construye software hoy: Next.js + Vercel AI SDK + Supabase + generadores como Bolt, V0, Cursor, Lovable.

Este benchmark compara tres motores sobre el mismo código. Datos crudos, sin cherry-picking. La diferencia no está en el volumen — está en qué clase de ataques cada uno sabe ver.

primer scanner de la era ia

OWASP LLM Top 10 2025 — cobertura

VCEye detecta las 9 categorías detectables estáticamente del OWASP LLM Top 10 2025 + CVEs emergentes 2025-2026 + slopsquatting via AI hallucinated packages. Snyk, Semgrep y Socket son scanners generalistas que añadieron reglas AI como parches. Nosotros diseñamos patterns específicos desde cero para detectar cómo los hackers atacan apps construidas con IA.

LLM01Prompt Injection (directo)
AI-PROMPT-001
LLM01Prompt Injection (indirect / content externo)
AI-CTX-001
LLM02Sensitive Information Disclosure
SEC-KEY-* · SUPA-RLS-*
LLM03Supply Chain (LangChain CVE-2025-68664)
AI-SERIAL-001
LLM03Supply Chain (slopsquatting packages)
AI-PKG-001
LLM04Data & Model Poisoning (RAG)
AI-RAG-001
LLM05Improper Output Handling (XSS via LLM)
AI-OUTPUT-001
LLM06Excessive Agency (tool abuse)
AI-TOOL-001
LLM06MCP Tool Poisoning (Invariant Labs)
MCP-001
LLM07System Prompt Leakage
AI-LEAK-001
LLM08Vector & Embedding Weaknesses
AI-EMBED-001
LLM09Misinformation
no detectable estáticamente
LLM10Unbounded Consumption (DoW)
AI-COST-001 · API-RATE-001

CVEs específicos detectados: CVE-2025-68664 (LangChain serialization, CVSS 9.3), CVE-2025-68665 (LangChain.js), tool poisoning via Invariant Labs disclosure, incidente postmark-mcp (oct 2025).

Findings VCEye
52
Findings Semgrep
0
Findings Snyk Code
254
Patterns únicos VCEye
0
Stack-specific
0
solo VCEye

Precisión vs volumen

Tres scanners sobre el mismo código. Tres filosofías distintas:

VCEye · precisión

Pocos findings, alta señal

Cada finding lleva CWE, archivo exacto, número de línea, severidad calibrada y remediation accionable. Las nueve categorías detectables del OWASP LLM Top 10 cubiertas como patterns dedicados, no como reglas legacy parcheadas. Stack-specific: AI-COST, AI-PROMPT, SUPA-RLS, MCP-001, BOLT, V0.

  • · cero false positives por construcción en CVEs (OSV.dev)
  • · cobertura OWASP LLM Top 10 2025 — 9 de 10 categorías
  • · git history scan: 16 providers de secretos
  • · taint-lite intra-procedural con sanitizers reconocidos
Snyk · recall alto

Muchos findings, alto ruido

Engine DeepCode, AI-powered, cobertura amplia para código clásico. En librerías limpias y stacks bien tipados dispara docenas de findings que requieren validación manual repo a repo. Sin reglas dedicadas para prompt injection, MCP poisoning, o LangChain/LlamaIndex CVEs emergentes — su fortaleza es OWASP Top 10 Web, no LLM Top 10.

  • · precio enterprise · sin tier indie
  • · requiere CI integration y auth
  • · no escanea history de git por defecto
  • · no genera fix-as-PR automático
Semgrep OSS · calibrado legacy

Sólido en código clásico

Quince años de reglas OSS para Express, Django, Flask, frameworks pre-IA. Excelente para apps tradicionales con un equipo de seguridad que sabe filtrar. Ciego a Vercel AI SDK, AI Tools, MCPs, RLS de Supabase. El tier Pro (€75/mes empresa) añade taint inter-procedural, no incluido en este benchmark.

  • · OSS gratis · Pro a partir de €75/mes
  • · sin reglas para AI SDK, MCP, prompt injection
  • · sin git history scan · sin auto-fix
  • · requiere CLI + CI · curva de adopción alta

La lectura: si construyes con Next.js, Supabase, Vercel AI SDK, MCPs o cualquier generador IA (Bolt, V0, Cursor, Lovable), VCEye ve patrones de ataque que no existen como regla en Snyk ni en Semgrep. Si tu stack es Java + Spring de 2018, paga Snyk. Si es 2026, esto es para ti.

Resultados por repo

Sin filtros, sin selección. Lista completa de findings que cada motor encontró. El Health Score es el score que tu audit entregaría al cliente final.

RepoKindVCEye HVCEyeSemgrepSnyk CodeStack-specific
juice-shop/juice-shop
user-provided
customH0522540

Findings al detalle

Para cada repo, los hallazgos concretos del motor VCEye con su pattern ID, severidad, archivo afectado y clasificación CWE. El reporte crudo ( benchmark-report.json) está versionado en el repo.

juice-shop/juice-shopH0
user-provided
VCEye
52
Semgrep
Snyk
254
VCEye findings (52) · 73.8s
  • mediumDEP-001CWE-1104
    1 paquete(s) abandonado(s) o deprecado(s)
  • highAUTH-011CWE-327
    jsonwebtoken 0.4.0 vulnerable por defecto a alg=none
    package.json
  • criticalAUTH-011CWE-327
    jwt.verify sin algorithms en lib/insecurity.ts
    lib/insecurity.ts:191
  • criticalAUTH-011CWE-327
    jwt.verify sin algorithms en routes/chatbot.ts
    routes/chatbot.ts:248
  • criticalAUTH-011CWE-327
    jwt.verify sin algorithms en routes/verify.ts
    routes/verify.ts:117
  • highCRYPTO-001CWE-338
    Math.random() usado en contexto de seguridad en lib/insecurity.ts
    lib/insecurity.ts:55
  • highCRYPTO-002CWE-327
    MD5/SHA1 usado en contexto de seguridad en Gruntfile.js
    Gruntfile.js:77
  • highCRYPTO-002CWE-327
    MD5/SHA1 usado en contexto de seguridad en lib/insecurity.ts
    lib/insecurity.ts:43
  • highINJ-002CWE-22
    Posible path traversal en routes/chatbot.ts
    routes/chatbot.ts:46
  • highINJ-002CWE-22
    Posible path traversal en routes/profileImageUrlUpload.ts
    routes/profileImageUrlUpload.ts:29
  • highINJ-002CWE-22
    Posible path traversal en routes/vulnCodeFixes.ts
    routes/vulnCodeFixes.ts:29
  • criticalINJ-003CWE-95
    eval / Function constructor en archivo con user input (routes/b2bOrder.ts)
    routes/b2bOrder.ts:9
  • criticalINJ-003CWE-95
    eval / Function constructor en archivo con user input (routes/captcha.ts)
    routes/captcha.ts:22
  • criticalINJ-003CWE-95
    eval / Function constructor en archivo con user input (server.ts)
    server.ts:386
  • mediumAUTH-012CWE-208
    Comparacion no-timing-safe de secret en routes/changePassword.ts
    routes/changePassword.ts:28
  • … +37 más
Semgrep findings () ·
scan no disponible (ver errores)
Snyk Code (254) · 17.6s
  • ×154NoHardcodedPasswords/test
  • ×35HardcodedNonCryptoSecret/test
  • ×12javascript/HTTPSourceWithUncheckedType
  • ×8NoHardcodedCredentials/test
  • ×7javascript/NoRateLimitingForExpensiveWebOperation
  • ×6javascript/PT
  • ×5javascript/NoSqli
  • ×5javascript/Sqli
  • ×5javascript/XSS
  • ×3javascript/HardcodedSecret
  • … +10 reglas más
CWE classes: 16
errores durante el scan
  • [semgrep] Unexpected end of JSON input

Lo que Semgrep no puede ver

Patrones que VCEye detecta específicos del stack 2026 (Next.js 15+ App Router, Supabase RLS, Vercel AI SDK, y generadores AI como Bolt/V0/Cursor/Lovable). Semgrep, Snyk OSS y Socket.dev no tienen reglas para nada de esto.

(ningún finding stack-specific en esta muestra — normal si todos los repos son genéricos)

Cómo reproducir este benchmark

El script harness está en scripts/benchmark-scanners-direct.mts. Corre en tu máquina así:

# 1. Instala Semgrep (open source)
pip install semgrep

# 2. Clona VCEye
git clone https://github.com/vibecodingeye/vceye
cd vceye

# 3. Benchmark completo (10 repos)
npx tsx scripts/benchmark-scanners-direct.mts --full

# 4. Un solo repo
npx tsx scripts/benchmark-scanners-direct.mts --repo=vercel/ai-chatbot
  • VCEye se ejecuta directamente como librería (modo deep, sin HTTP), la ruta completa fetchRepoContents → buildContext → runScan.
  • Semgrep corre con los rulesets p/owasp-top-ten, p/javascript, p/typescript, p/nextjs, p/nodejs, p/security-audit. Timeout 30s por regla.
  • Ambos scanners ven exactamente el mismo código (repo shallow clone, mismo commit).
  • El output de VCEye sale tal cual de runScan(), sin filtros manuales ni cherry-picking.

Lo que este benchmark NO demuestra

Semgrep Pro (pago) no está incluido. Su tier enterprise tiene taint analysis y reglas AI más ricas. Esa comparación sería justa contra nuestra suscripción, no contra el motor base.

GitGuardian y Socket.dev no están comparados. GitGuardian es sólo secretos (subset de VCEye). Socket.dev es principalmente scanner de dependencias (también subset).

Snyk Code SÍ está comparado. Su motor DeepCode es AI-powered y más avanzado que Semgrep OSS. Los resultados reflejan esa sofisticación.

10 repos es una muestra limitada. El score real del motor viene de los audits reales con feedback loop del fundador y de los clientes (sistema de calibración supervised).

siguiente paso

Pasa el mismo motor sobre tu repo.

scan gratis sin tarjeta · resultado en menos de 90 segundos

Pega la URL de un repo público o conecta tu GitHub App privada. Recibes Health Score, severity breakdown, y los pattern IDs disparados — suficiente para saber si tienes problema. La suscripción (€59/mes o €566/año, -20%) entrega rutas exactas, snippets, scan de git history, taint analysis, CVE matching contra OSV.dev, comentario automático en cada PR, y digest semanal de drift. Cancelas cuando quieras.

benchmark ejecutado 28 de abril de 2026 · Semgrep OSS v1.160 · Snyk Code (DeepCode) · VCEye motor v78-patterns