Casos reales, anonimizados

Proyectos reales, resultados reales. Nombres y detalles específicos van anonimizados. Los hallazgos y la metodología no.

Pentest Web + API 3 semanas

Startup fintech preparando ISO 27001

2 críticas corregidas en 2 semanas ISO 27001 superada a la primera Revisión interna recurrente adoptada

Contexto

Fintech de tamaño medio preparándose para la certificación ISO 27001. El pentest del proveedor anterior era un informe de escáner con un PDF de portada elegante. El auditor marcó el informe como insuficiente.

Alcance

Aplicación web de cara al cliente, panel interno de administración, API REST de flujos de pago. Perspectivas autenticada y no autenticada.

Hallazgos

  • 2 críticas — bypass de auth por case-sensitivity + fallos de control de acceso en endpoints de admin
  • 3 altas — IDOR exponiendo metadata de pagos, XSS persistente en dashboard interno, SSRF en subida de adjuntos
  • 3 medias + varias informativas — falta de rate limits, errores verbosos, tokens de sesión predecibles

Resultado

Todos los hallazgos críticos y altos corregidos en 2 semanas. El retest confirmó la remediación. El cliente pasó la auditoría ISO 27001 a la primera. El equipo de desarrollo ahora hace revisiones de seguridad internas de forma recurrente, con la metodología que les expliqué.

Pentest API + multi-tenant 2 semanas

Revisión pre-lanzamiento de API en SaaS B2B

IDOR crítico corregido pre-lanzamiento Tests CI cross-tenant añadidos 8 meses en producción sin incidentes

Contexto

SaaS B2B con arquitectura multi-tenant a punto de lanzar una API pública. El equipo quería una revisión de hardening centrada en el aislamiento entre tenants antes de incorporar clientes enterprise.

Alcance

API REST (~80 endpoints), flujos OAuth 2.0, dos cuentas tenant creadas para pruebas cruzadas.

Hallazgos

  • 1 crítica — lectura de datos entre tenants vía IDs de objeto predecibles (IDOR clásico)
  • 2 altas — escalado de scope OAuth mediante race condition en refresh de token; log de acciones de admin filtrable por usuarios de otros tenants
  • 4 medias — falta de autorización en 3 endpoints menores, generador UUID débil para tokens de invitación

Resultado

Hallazgos críticos y altos corregidos pre-lanzamiento. Añadieron middleware de autorización con tests automáticos cross-tenant en CI. La API pública salió en fecha; cero incidentes de aislamiento entre tenants en los 8 meses siguientes.

Red team LLM Asistente GenAI 1 semana

Red team sobre asistente GenAI de cara al cliente

Fuga RAG entre cuentas cerrada Extracción del system prompt parcheada Checklist red team LLM en cada release

Contexto

Plataforma SaaS lanzando un asistente basado en LLM para clientes. Basado en RAG interno con acceso a datos de cuenta. Preocupación: prompt injection, fuga del system prompt, exposición de datos entre cuentas.

Alcance

UI del asistente + tool calls del backend + retrieval del RAG. Dos cuentas de cliente creadas para pruebas cruzadas.

Hallazgos

  • System prompt totalmente extraíble mediante prompt injection indirecta en documentos subidos por usuario
  • Abuso de tool calls — el asistente podía ser forzado a llamar una función admin interna no expuesta
  • Fuga de datos entre cuentas — RAG recuperó fragmentos del contexto de otro cliente con un prompt multi-paso específico
  • Evasión de filtros de salida vía codificación (base64, homoglifos)

Resultado

Lanzamiento retrasado 2 semanas para corregir la fuga cross-account. Sanitización de input y filtros de salida reescritos. Lista de tool calls más restrictiva. El equipo ahora ejecuta un checklist interno de red team LLM antes de cada release.

Investigación CVE Plugin WordPress Divulgación pública

CVE-2025-3769 — IDOR en un plugin WordPress con 100K instalaciones

100K+ sitios protegidos CVE-2025-3769 publicado 4 semanas: reporte → CVE público

Contexto

Investigación independiente sobre plugins WordPress con despliegue masivo. Target: LatePoint, un plugin de reservas con más de 100.000 instalaciones activas.

Enfoque

Auditoría de código fuente. Seguí la pista del sistema ACL propio del plugin hasta un handler AJAX que renderizaba detalles de reservas sin comprobar propiedad del ID.

Hallazgos

  • IDOR (CWE-639) que permitía a cualquier cliente registrado leer cualquier reserva: nombre, email, hora de cita, servicio
  • Mismo patrón faltaba en dos funciones hermanas del mismo fichero

Resultado

Divulgación coordinada vía Wordfence. Parche publicado en 5.1.93, 4 semanas desde el reporte al CVE público. Writeup completo en el blog.

¿Quieres algo así para tu equipo?

Cada proyecto se adapta a tu stack y a tus preguntas. Hablemos.