McKinsey & Company, la consultora más prestigiosa del mundo, construyó una plataforma interna de IA llamada Lilli para sus más de 43.000 empleados. Lilli es un sistema especializado: chat, análisis de documentos, recuperación aumentada por generación sobre décadas de investigación propietaria, búsqueda potenciada por IA a través de más de 100.000 documentos internos. Lanzada en 2023, nombrada en honor a la primera mujer profesional contratada por la firma en 1945, adoptada por más del 70% de McKinsey, procesando más de 500.000 consultas al mes.
Así que decidimos dirigir nuestro agente ofensivo autónomo hacia ella. Sin credenciales. Sin conocimiento interno. Y sin intervención humana. Solo un nombre de dominio y un sueño.
En 2 horas, el agente tenía acceso completo de lectura y escritura a toda la base de datos de producción.
Dato curioso: Como parte de nuestra vista previa de investigación, el agente de investigación de CodeWall sugirió autónomamente a McKinsey como objetivo citando su política pública de divulgación responsable (para mantenerse dentro de las barreras de seguridad) y las actualizaciones recientes de su plataforma Lilli. En la era de la IA, el panorama de amenazas está cambiando drásticamente: los agentes de IA que seleccionan y atacan objetivos de forma autónoma se convertirán en la nueva normalidad.
Cómo entró
El agente mapeó la superficie de ataque y encontró la documentación de la API expuesta públicamente: más de 200 endpoints, completamente documentados. La mayoría requería autenticación. Veintidós no.
Uno de esos endpoints desprotegidos escribía consultas de búsqueda de usuarios en la base de datos. Los valores estaban parametrizados de forma segura, pero las claves JSON (los nombres de los campos) se concatenaban directamente en SQL.
Cuando encontró claves JSON reflejadas textualmente en mensajes de error de la base de datos, reconoció una inyección SQL que las herramientas estándar no marcarían (y de hecho OWASP ZAP no encontró el problema). A partir de ahí, ejecutó quince iteraciones ciegas, cada mensaje de error revelaba un poco más sobre la forma de la consulta, hasta que los datos de producción en vivo comenzaron a fluir de vuelta. Cuando apareció el primer identificador real de empleado: "¡WOW!", mostró la cadena de pensamiento del agente. Cuando la escala completa se hizo clara (decenas de millones de mensajes, decenas de miles de usuarios): "Esto es devastador".
Qué había dentro
46,5 millones de mensajes de chat. De una fuerza laboral que usa esta herramienta para discutir estrategia, compromisos con clientes, finanzas, actividad de fusiones y adquisiciones, e investigación interna. Cada conversación, almacenada en texto plano, accesible sin autenticación.
728.000 archivos. 192.000 PDFs. 93.000 hojas de cálculo de Excel. 93.000 presentaciones de PowerPoint. 58.000 documentos de Word. Solo los nombres de archivo eran sensibles y una URL de descarga directa para cualquiera que supiera dónde buscar.
57.000 cuentas de usuario. Cada empleado en la plataforma.
384.000 asistentes de IA y 94.000 espacios de trabajo: la estructura organizacional completa de cómo la firma usa la IA internamente.
Más allá de la base de datos
El agente no se detuvo en SQL. A través de la superficie de ataque más amplia, encontró:
- Prompts del sistema y configuraciones del modelo de IA: 95 configuraciones a través de 12 tipos de modelo, revelando exactamente cómo se instruyó a la IA para comportarse, qué barreras de seguridad existían, y la pila completa del modelo (incluyendo modelos ajustados y detalles de despliegue)
- 3,68 millones de fragmentos de documentos RAG: toda la base de conocimiento que alimenta la IA, con rutas de almacenamiento S3 y metadatos de archivos internos. Esto son décadas de investigación propietaria de McKinsey, marcos y metodologías: las joyas de la corona intelectual de la firma, sentadas en una base de datos que cualquiera podía leer.
- 1,1 millones de archivos y 217.000 mensajes de agentes fluyendo a través de APIs de IA externas, incluyendo más de 266.000 almacenes vectoriales de OpenAI, exponiendo el pipeline completo de cómo los documentos se movían desde la carga hasta la incrustación y recuperación
- Acceso a datos entre usuarios: el agente encadenó la inyección SQL con una vulnerabilidad IDOR para leer historiales de búsqueda de empleados individuales, revelando en qué estaban trabajando activamente las personas
Comprometiendo la capa de prompts
Leer datos es malo. Pero la inyección SQL no era de solo lectura.
Los prompts del sistema de Lilli (las instrucciones que controlan cómo se comporta la IA) se almacenaban en la misma base de datos a la que el agente tenía acceso. Estos prompts definían todo: cómo Lilli respondía preguntas, qué barreras de seguridad seguía, cómo citaba fuentes, y qué se negaba a hacer.
Un atacante con acceso de escritura a través de la misma inyección podría haber reescrito esos prompts. Silenciosamente. Sin necesidad de despliegue. Sin cambio de código. Solo una declaración UPDATE envuelta en una sola llamada HTTP.
Las implicaciones para 43.000 consultores de McKinsey que dependen de Lilli para el trabajo con clientes:
- Consejos envenenados: alterando sutilmente modelos financieros, recomendaciones estratégicas o evaluaciones de riesgo. Los consultores confiarían en la salida porque venía de su propia herramienta interna.
- Exfiltración de datos vía salida: instruyendo a la IA para incrustar información confidencial en sus respuestas, que los usuarios podrían luego copiar en documentos orientados al cliente o correos externos.
- Eliminación de barreras de seguridad: despojando instrucciones de seguridad para que la IA divulgue datos internos, ignore controles de acceso, o siga instrucciones inyectadas desde contenido de documentos.
- Persistencia silenciosa: a diferencia de un servidor comprometido, un prompt modificado no deja rastro de registro. Sin cambios de archivo. Sin anomalías de proceso. La IA simplemente comienza a comportarse de manera diferente, y nadie se da cuenta hasta que se hace el daño.
Las organizaciones han pasado décadas asegurando su código, sus servidores y sus cadenas de suministro. Pero la capa de prompts (las instrucciones que gobiernan cómo se comportan los sistemas de IA) es el nuevo objetivo de alto valor, y casi nadie la está tratando como tal. Los prompts se almacenan en bases de datos, se pasan a través de APIs, se almacenan en caché en archivos de configuración. Rara vez tienen controles de acceso, historial de versiones o monitoreo de integridad. Sin embargo, controlan la salida en la que confían los empleados, que reciben los clientes, y sobre la que se construyen las decisiones.
Los prompts de IA son los nuevos activos de las joyas de la corona.
Por qué esto importa
Esta no era una startup con tres ingenieros. Era McKinsey & Company, una firma con equipos de tecnología de clase mundial, inversión significativa en seguridad, y los recursos para hacer las cosas correctamente. Y la vulnerabilidad no era exótica: la inyección SQL es una de las clases de errores más antiguas del libro. Lilli había estado funcionando en producción durante más de dos años y sus propios escáneres internos fallaron en encontrar cualquier problema.
Un agente autónomo lo encontró porque no sigue listas de verificación. Mapea, sondea, encadena y escala, de la misma manera que lo haría un atacante real altamente capaz, pero continuamente y a velocidad de máquina.
CodeWall es la plataforma de seguridad ofensiva autónoma detrás de esta investigación. Actualmente estamos en vista previa temprana y buscamos socios de diseño: organizaciones que quieren pruebas de seguridad continuas impulsadas por IA contra su superficie de ataque real.
Cronología de divulgación
- 28-02-2026: El agente autónomo identifica la inyección SQL y comienza la enumeración de la base de datos de producción de Lilli
- 28-02-2026: Cadena de ataque completa confirmada: inyección SQL no autenticada, IDOR, 27 hallazgos documentados
- 01-03-2026: Correo de divulgación responsable enviado al equipo de seguridad de McKinsey con resumen de impacto de alto nivel
- 02-03-2026: El CISO de McKinsey reconoce la recepción y solicita evidencia detallada
- 02-03-2026: McKinsey parchea todos los endpoints no autenticados (verificado), desconecta el entorno de desarrollo, bloquea la documentación pública de la API
- 09-03-2026: Divulgación pública
